【发布时间】:2011-04-10 07:03:05
【问题描述】:
我有一个 matplotlib 图形,我正在绘制始终称为纳秒 (1e-9) 的数据。在 y 轴上,如果我有数十纳秒的数据,即。在图 44e-9 中,轴上的值显示为 4.4,偏移量为 +1e-8。无论如何强制轴显示 44 偏移 +1e-9?
我的 x 轴也是如此,其中轴显示 +5.54478e4,我希望它显示 +55447 的偏移量(整数,没有小数 - 这里的值以天为单位)。
我已经尝试了一些这样的事情:
p = axes.plot(x,y)
p.ticklabel_format(style='plain')
对于 x 轴,但这不起作用,尽管我可能使用不正确或误解了文档中的某些内容,有人能指出我正确的方向吗?
谢谢, 乔纳森
我尝试使用格式化程序做一些事情,但还没有找到任何解决方案...:
myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
和
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
在旁注中,我实际上对“偏移量”对象实际驻留的位置感到困惑......它是主要/次要刻度的一部分吗?
【问题讨论】:
-
你试过
set_units吗? matplotlib.sourceforge.net/api/…(我无法尝试,因为我这里没有matplotlib。) -
我检查了 set_units 函数,它似乎比必要的复杂得多(必须编写/添加一个额外的模块??-basic_units?)。必须有一种方法来编辑刻度的格式。 units / set_unit 函数似乎更像是单位转换。不过感谢您的提示,它使我找到了我正在寻找的其他一些解决方案!
-
如果默认关闭,请考虑
rcParams关闭:rcParams["axes.formatter.useoffset"] = False在这里:stackoverflow.com/questions/24171064/…
标签: python matplotlib