10

Matplotlib中,许多示例以形式出现ax = subplot(111),然后应用函数ax,例如ax.xaxis.set_major_formatter(FuncFormatter(myfunc)). (在这里找到)

或者,当我不需要子图时,我可以做plt.figure(),然后用plt.plot()或类似的功能绘制我需要的任何东西。

现在,我正好是第二种情况,但我想set_major_formatter在 X 轴上调用函数。调用它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'

我应该在这里做什么?

4

2 回答 2

10

如果您想要的图形被选中,只需使用gca()获取当前轴实例:

ax = gca()
ax.xaxis.set_major_formatter(FuncFormatter(myfunc)) 
于 2013-01-21T15:46:28.193 回答
3

另一种选择是使用由返回的图形对象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)) 

当您处理多个绘图时,此选项非常有用,因为您可以指定将更新哪个绘图。

于 2015-03-30T09:48:36.207 回答