2

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

4

1 回答 1

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()

在此处输入图像描述

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

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

setp不过还是很有用的。它会自动对艺术家序列进行操作,因此您可以执行plt.setp([ax1, ax2, ax3], **parameters). 这对于诸如刻度和刻度标签之类的东西特别方便,您经常同时操作一堆艺术家。

它还允许轻松自省 matplotlib 艺术家。尝试调用诸如plt.setp(ax)查看所有参数列表或plt.setp(line, 'marker')查看line.set_marker.

于 2012-11-15T02:14:17.923 回答