有没有一种方法可以将字典传递给axes方法,以一次设置所有实例变量,而无需分别调用.set_xlim()
,.set_ylim()
等?我知道Matlab具有此功能,我也想过Matplotlib,但找不到文档。
最佳答案
它是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()
setp
和getp
是“ 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
的所有有效参数的列表。关于python - matplotlib使用单个命令将多个变量分配给轴实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13376662/