python - 如何同时对多个图形应用选项
问题描述
如果我这样做
import numpy as np
import matplotlib.pyplot as plt
a=[1,2,3]
b=[3,4,5]
plt.figure(1)
plt.xlim(0,3)
plt.plot(b)
plt.figure(2)
plt.plot(a)
plt.show()
x 轴的选择将仅应用于图 1。我可以使用什么来区分我希望仅对图 1 或 2 有效的选项和我想应用于两个图的选项?
澄清:我知道可以plt.xlim
多次调用。我宁愿寻找某种形式的命令,例如
plt.apply_options_to(1,2)
从那一刻起,每次我打电话时plt.xlim
,该选项都适用于两个数字,而不仅仅是两个数字之一。
解决方案
使用 pyplot,每个命令都适用于当前活动的图形或轴。这意味着您可以轻松地遍历数字并应用每个命令,例如
for i in (1,2):
plt.figure(i)
plt.xlim(0,3)
现在这些是三行代码。如果要求是使用单行代码,以下将是一个解决方案
[plt.setp(plt.figure(i).axes[0], xlim=(0,3)) for i in plt.get_fignums() if i in (1,2)]
这既不优雅也不易于键入,因此在使用 pyplot 时,我会推荐第一个解决方案。
但总的来说,我建议使用面向对象的方法,其中创建两个图形如下所示:
import matplotlib.pyplot as plt
a=[1,2,3]
b=[3,4,5]
fig, ax = plt.subplots()
ax.plot(b)
fig2, ax2 = plt.subplots()
ax2.plot(a)
plt.show()
那么单线方案也紧凑一点
plt.setp([ax,ax2], xlim=(0,3))