Matplotlib如何一次性绘制多个独立图形而非子图?
解决Matplotlib生成独立图形的问题
要生成两个独立的图形窗口,每个窗口只显示一条曲线,你只需要为每个图形单独创建figure和axes对象即可,无需使用子图。以下是修改后的代码:
import numpy as np import matplotlib.pyplot as plt x1 = np.random.normal(10, 1, 100) x2 = np.random.uniform(8, 12, 100) # 第一个独立图形:绘制正态分布数据 fig1, ax1 = plt.subplots() ax1.plot(np.sort(x1), label='Normal') ax1.legend() # 第二个独立图形:绘制均匀分布数据 fig2, ax2 = plt.subplots() ax2.plot(np.sort(x2), label='Uniform') ax2.legend() plt.show()
关键说明
- 每次调用
plt.subplots()都会创建一个新的独立图形窗口(figure)和对应的绘图区域(axes),两个图形完全独立,互不干扰。 plt.show()会一次性显示所有已创建的图形窗口,不需要为每个图形单独调用。
如果你习惯用更简洁的面向过程写法,也可以这样写:
import numpy as np import matplotlib.pyplot as plt x1 = np.random.normal(10, 1, 100) x2 = np.random.uniform(8, 12, 100) # 创建第一个图形并绘图 plt.figure() plt.plot(np.sort(x1), label='Normal') plt.legend() # 创建第二个图形并绘图 plt.figure() plt.plot(np.sort(x2), label='Uniform') plt.legend() plt.show()
这两种写法都能实现你要的效果:两个独立的图形窗口,每个窗口只展示一条曲线。
内容的提问来源于stack exchange,提问作者user29839
相关产品推荐
相关产品推荐

