在 Matplotlib 中,许多示例都以ax = subplot(111)
的形式出现,然后函数应用于ax
,例如ax.xaxis.set_major_formatter(FuncFormatter(myfunc))
。 (找到here)
或者,当我不需要子图时,我可以plt.figure()
然后使用plt.plot()
或类似函数绘制我需要的任何内容。
现在,我完全是第二种情况,但我想在X轴上调用函数set_major_formatter
。在plt
上调用它当然不起作用:
>>> plt.xaxis.set_major_formatter(FuncFormatter(myfunc))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'xaxis'
我该怎么办?
答案 0 :(得分:7)
如果选择了您想要的数字,只需使用gca()
获取当前轴实例:
ax = gca()
ax.xaxis.set_major_formatter(FuncFormatter(myfunc))
答案 1 :(得分:2)
另一种选择是使用figure()
返回的图形对象。
fig = plt.figure()
# Create axes, either:
# - Automatically with plotting code: plt.line(), plt.plot(), plt.bar(), etc
# - Manually add axes: ax = fig.add_subplot(), ax = fig.add_axes()
fig.axes[0].get_xaxis().set_major_formatter(FuncFormatter(myfunc))
当您处理多个绘图时,此选项非常有用,因为您可以指定要更新的绘图。