matplotlib 同时显示2个图,而不是一个接一个

bqf10yzr  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(123)

我有下面的代码,它首先显示了一个matplotlib图。然后,我必须关闭第一个图,以便出现第二个图。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import mglearn

# generate dataset
X, y = mglearn.datasets.make_forge()
# plot dataset
mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
plt.legend(["Class 0", "Class 1"], loc=4)
plt.xlabel("First feature")
plt.ylabel("Second feature")
print("X.shape: {}".format(X.shape))

plt.show()

X, y = mglearn.datasets.make_wave(n_samples=40)
plt.plot(X, y, 'o')
plt.ylim(-3, 3)
plt.xlabel("Feature")
plt.ylabel("Target")

plt.show()

我想让两个matplotlib图同时出现。

np8igboo

np8igboo1#

plt.show()绘制状态机中存在的所有图形。仅在脚本结束时调用它可确保打印所有先前创建的图形。
现在,您需要确保每个图确实是在不同的图形中创建的。这可以使用plt.figure(fignumber)来实现,其中fignumber是从索引1开始的数字。

import matplotlib.pyplot as plt
import mglearn

# generate dataset
X, y = mglearn.datasets.make_forge()

plt.figure(1)
mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
plt.legend(["Class 0", "Class 1"], loc=4)
plt.xlabel("First feature")
plt.ylabel("Second feature")

plt.figure(2)
X, y = mglearn.datasets.make_wave(n_samples=40)
plt.plot(X, y, 'o')
plt.ylim(-3, 3)
plt.xlabel("Feature")
plt.ylabel("Target")

plt.show()
pbossiut

pbossiut2#

创建两个figures,只调用show()一次

fig1 = plt.figure()
fig2 = plt.figure()

ax1 = fig1.add_subplot(111)
ax2 = fig2.add_subplot(111)

ax1.plot(x1,y1)
ax2.plot(x2,y2)

plt.show()

相关问题