如果我这样做
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
时,该选项就会应用于两个图形,而不仅是两个图形中的一个。
答案 0 :(得分:1)
使用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))