Ian*_*rts 70 python graph matplotlib figure
我在Python中使用Matplotlib来绘制简单的xy数据集.这会生成漂亮的图形,但是当我使用图形视图(执行时出现plt.show())在绘制图形的各个部分上"放大"太近时,x轴值从标准数字形式(1050,1060, 1070等)具有指数表示法的科学形式(例如1,1,5,2.0,其中x轴标记为+1.057e3).
我更喜欢我的数字保留轴的简单编号,而不是使用指数形式.有没有办法可以强制Matplotlib这样做?
tac*_*ell 92
刻度标签的格式由一个Formatter对象控制,假设你没有做任何花哨的事情ScalerFormatter,默认是一个.如果可见值的分数变化非常小,则此格式化程序将使用常量移位.要避免这种情况,只需将其关闭即可:
plt.plot(arange(0,100,10) + 1000, arange(0,100,10))
ax = plt.gca()
ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.draw()
Run Code Online (Sandbox Code Playgroud)
如果你想避免一般的科学记数法,
ax.get_xaxis().get_major_formatter().set_scientific(False)
Run Code Online (Sandbox Code Playgroud)
可以通过axes.formatter.useoffsetrcparam 全局控制它.
小智 22
您可以使用更简单的命令将其关闭:
plt.ticklabel_format(useOffset=False)
Run Code Online (Sandbox Code Playgroud)
Ani*_*ena 13
您可以使用以下内容:
from matplotlib.ticker import ScalarFormatter, FormatStrFormatter
ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f'))
Run Code Online (Sandbox Code Playgroud)
小智 7
使用以下命令:
ax.ticklabel_format(useOffset=False, style='plain')
如果您使用的是子图,您可能会遇到这种情况,您需要像下面这样AttributeError: This method only works with the ScalarFormatter添加。axis='y'您可以将“y”更改为存在问题的轴。
ax1.ticklabel_format(useOffset=False, style='plain', axis='y')
Run Code Online (Sandbox Code Playgroud)
来源问题和答案在这里。注意,axis 'y'命令的使用隐藏在答案注释中。
小智 5
我在图表之前使用了下面的代码,它对我来说无缝工作。
plt.ticklabel_format(style='plain')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55346 次 |
| 最近记录: |