如何同时将选项应用于多个图形

时间:2018-10-03 18:34:12

标签: python matplotlib

如果我这样做

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时,该选项就会应用于两个图形,而不仅是两个图形中的一个。

1 个答案:

答案 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))
相关问题