Matplotlib一次只能绘制一个图形。

3

假设我在 Python 程序中有两个要绘制的图形。我可以通过以下代码运行:

python myprog.py

两个图形依次显示:第二个图形只有在第一个图形关闭后才会显示。有没有办法同时绘制所有图形?以下是示例代码。
import pylab as plt

x  = [1.0,2.0,3.0]
y1 = [1.0,2.0,3.0]
y2 = [3.0,2.0,1.0]

plt.figure(1)
plt.plot(x,y1,'b')
plt.show()

plt.figure(2)
plt.plot(x,y2,'r')
plt.show()

4
去掉你的第一个 plt.show() - undefined
我相信上面@CTZhu的评论实际上回答了这个问题。 - undefined
3个回答

1
要绘制多个子图以显示多个图形,这是我认为问题所询问的而不是使用单个绘图命令绘制多条线,请按以下方式使用子图:
import pylab as plt

x  = [1.0,2.0,3.0]
y1 = [1.0,2.0,3.0]
y2 = [3.0,2.0,1.0]

fig = plt.figure()
axes = fig.add_subplot(111)
axes.plot(x,y1,'b')

axes = fig.add_subplot(111)
axes.plot(x,y2,'r')
plt.show()

虽然对于示例来说,绘制多个实例可以工作,但是对于更复杂的图形,使用子图是有用的。


0

官方文档中:

matplotlib.pyplot.plot(*args, **kwargs)

绘制线条和/或标记到坐标轴。args是一个可变长度的参数,允许使用可选的格式字符串来指定多个x、y对

所以你可以这样做:

import pylab as plt

x  = [1.0,2.0,3.0]
y1 = [1.0,2.0,3.0]
y2 = [3.0,2.0,1.0]

plt.figure()
plt.plot(x,y1,'b', x,y2,'r')
plt.show()

0
您需要使用子图将两个图形显示在同一张图上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接