相关疑难解决方法(0)

matplotlib:格式化轴偏移值到整数或特定数字

我有一个matplotlib图,我正在绘制数据,总是被称为纳秒(1e-9).在y轴上,如果我有数十纳秒的数据,即.在图44e-9中,轴上的值显示为4.4,其中+ 1e-8作为偏移.反正是否强制轴显示带有+ 1e-9偏移的44?

我的x轴也是如此,其中轴显示+ 5.54478e4,我宁愿它显示+55447的偏移(整数,没有小数 - 这里的值是以天为单位).

我尝试过这样的事情:

p = axes.plot(x,y)
p.ticklabel_format(style='plain')
Run Code Online (Sandbox Code Playgroud)

对于x轴,但这不起作用,虽然我可能错误地使用它或误解了文档中的某些东西,有人能指出我正确的方向吗?

谢谢,乔纳森

问题图


我尝试用格式化程序做一些事情,但还没找到任何解决方案......:

myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
Run Code Online (Sandbox Code Playgroud)

myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
Run Code Online (Sandbox Code Playgroud)

在旁注中,我实际上对"偏移数"对象实际存在的位置感到困惑...它是主要/次要刻度的一部分吗?

python matplotlib

89
推荐指数
7
解决办法
8万
查看次数

从matplotlib刻度标签格式中删除前导0

如何更改数字十进制数据的ticklabels为"0","0.1" (在0和1之间的说),在matplotlib" 0.2" ,而不是'0.0’,'0.1’,'0.2’?例如,

hist(rand(100))
xticks([0, .2, .4, .6, .8])
Run Code Online (Sandbox Code Playgroud)

将标签格式化为"0.0","0.2"等.我知道这摆脱了"0.0"中的前导"0"和"1.0"上的尾随"0":

from matplotlib.ticker import FormatStrFormatter
majorFormatter = FormatStrFormatter('%g')
myaxis.xaxis.set_major_formatter(majorFormatter) 
Run Code Online (Sandbox Code Playgroud)

这是一个好的开始,但我也想摆脱"0.2"和"0.4"等的"0"前缀.如何做到这一点?

python plot matplotlib

4
推荐指数
1
解决办法
2543
查看次数

标签 统计

matplotlib ×2

python ×2

plot ×1