matplotlib使用单个命令为轴实例分配多个变量

时间:2012-11-14 10:04:30

标签: python matplotlib

有没有办法将字典传递给axes方法来同时设置实例变量而无需单独调用.set_xlim().set_ylim()等等?我知道Matlab有这个功能,我也认为Matplotlib也找不到文档。

1 个答案:

答案 0 :(得分:1)

这是plt.setp(另见getp)。

作为一个简单的例子:

import matplotlib.pyplot as plt

linestyle = dict(color='red', marker='^', linestyle='--', linewidth=2)

fig, ax = plt.subplots()
line, = ax.plot(range(10))

plt.setp(ax, xlim=[-1, 12], ylim=[-5, 12], xlabel='X-axis')
plt.setp(line, **linestyle)

plt.show()

enter image description here

setpgetp是“matlab-isms”,所以很多人都认为它们是“unpythonic”,除非绝对必要,否则不应该使用它们。

显然,您可以通过其他方式完成所有这些操作(例如,使用ax.axis([xmin, xmax, ymin, ymax])设置轴限制,或者在调用linestyle时仅展开plot字典。

不过,

setp仍然非常有用。它会自动对艺术家序列进行操作,因此您可以执行plt.setp([ax1, ax2, ax3], **parameters)之类的操作。这对于像蜱和蜱标签这样的东西尤其方便,你经常会在这里经营一群艺术家。

它还允许轻松反省matplotlib艺术家。尝试调用plt.setp(ax)之类的内容查看所有参数的列表,或plt.setp(line, 'marker')查看line.set_marker的所有有效参数列表。