为什么ticklabel_format不生效?

时间:2014-08-20 22:26:49

标签: python matplotlib

我使用Matplotlib绘制3 * 4子图。我打算将刻度标签的样式更改为'sci',以便绘图更加整洁。但是使用以下代码,ticklabel_format甚至不会对轴生效。

import matplotlib.pylab as pl

fig, axes = pl.subplots(nrows=3, ncols=4)

for i,row in enumerate(axes):
    for j,ax in enumerate(row):
        ax.set_title('title')
        ax.ticklabel_format(styl='plain')

pl.tight_layout()
pl.show()

我专心打错了'styl',但它没有报错。所以我假设ticklabel_format函数甚至没有运行。

1 个答案:

答案 0 :(得分:0)

它没有生效,因为ax.ticklabel_format接受任何关键字参数并创建字典。要查看此文档,请查看文档here,您会看到它需要参数**kwargs。如果您只是将styl替换为style,那么您的代码就可以运行了。

我建议你看看this SO post来了解出了什么问题,但简而言之:该功能可以采取任何论据。然后它尝试将这些功能传递给其他功能。如果这些都不需要它,那么论证就会在以太中丢失。因此,没有错误消息!

尝试使用以下示例来感受**kwargs

def f(**kwargs):
    print kwargs
    return

f(anything='something')