Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么ticklabel\u格式不生效?_Python_Matplotlib - Fatal编程技术网

Python 为什么ticklabel\u格式不生效?

Python 为什么ticklabel\u格式不生效?,python,matplotlib,Python,Matplotlib,我正在使用Matplotlib绘制一个3*4子图。我将把勾号标签的样式改为“sci”,这样绘图可以更整洁。但是使用下面的代码,ticklabel_格式甚至不会在轴上生效 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')

我正在使用Matplotlib绘制一个3*4子图。我将把勾号标签的样式改为“sci”,这样绘图可以更整洁。但是使用下面的代码,ticklabel_格式甚至不会在轴上生效

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\u format函数甚至没有运行。

它没有生效,因为ax.ticklabel\u format接受任何关键字参数并创建字典。要了解这一点,请查看文档,您将看到它需要一个参数**kwargs。如果你只是用style替换styl,那么你的代码就可以工作了

我建议您查看一下,以了解出了什么问题,但简单地说:函数可以接受任何参数。然后,它尝试将这些信息传递给其他函数。如果这些都不需要它,那么这个论点就完全消失在乙醚中了。因此,没有错误消息

尝试使用下面的示例来体验**kwargs


什么是pl?是mpl吗?我很确定这段代码根本不起作用,除非你导入pyplot,这可能就是你所说的pl。请确保在发布代码时,它真的做到了你认为它能做到的——直接复制/粘贴是最好的。@jojo,谢谢你的评论。这是matplotlib.pyplot,我已经重新编辑过了。@Ajean,谢谢你的建议。我重新编辑过
def f(**kwargs):
    print kwargs
    return

f(anything='something')