PyCharm: 如何用 plt.show() 显示多个图?
PyCharm: How to display multiple plots with plt.show()?
我在代码的不同部分使用了 plt.show()
来显示一些数字。但是每次执行命令plt.show()
,只有关闭当前图形后才会继续执行。如何在不关闭当前数字的情况下显示数字(查看全部)?
示例:
import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt
data = {'A': [45, 31, 42, 35, 39],
'B': [38, 31, 26, 28, 33],
'C': [10, 15, 17, 21, 12],
'D': [9, 14, 16, 22, 141]}
df = pd.DataFrame(data, columns=['A', 'B'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True)
plt.show() # this should be closed to continue
df = pd.DataFrame(data, columns=['C', 'D'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True)
plt.show()
顺便说一句,我在 macOS
上使用 PyCharm
。
@SimonFromme 的评论是正确的:
- 你创建了数字然后只调用了一次
plt.show
- 这与 IDE 无关(可能除了 jupyter)
但是要得到你想要的,你需要明确地创建两个图像并在每个图像中绘制热图。默认情况下,似乎 seaborn.heatmap
只使用一个图形和一个轴。
import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt
fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()
data = {'A': [45, 31, 42, 35, 39],
'B': [38, 31, 26, 28, 33],
'C': [10, 15, 17, 21, 12],
'D': [9, 14, 16, 22, 141]}
df = pd.DataFrame(data, columns=['A', 'B'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True, ax=ax1)
df = pd.DataFrame(data, columns=['C', 'D'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True, ax=ax2)
plt.show()
如果一张有两个轴的图对你来说足够好,你可以用
替换两个子图
fig, (ax1, ax2) = plt.subplots(ncols=2)
我在代码的不同部分使用了 plt.show()
来显示一些数字。但是每次执行命令plt.show()
,只有关闭当前图形后才会继续执行。如何在不关闭当前数字的情况下显示数字(查看全部)?
示例:
import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt
data = {'A': [45, 31, 42, 35, 39],
'B': [38, 31, 26, 28, 33],
'C': [10, 15, 17, 21, 12],
'D': [9, 14, 16, 22, 141]}
df = pd.DataFrame(data, columns=['A', 'B'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True)
plt.show() # this should be closed to continue
df = pd.DataFrame(data, columns=['C', 'D'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True)
plt.show()
顺便说一句,我在 macOS
上使用 PyCharm
。
@SimonFromme 的评论是正确的:
- 你创建了数字然后只调用了一次
plt.show
- 这与 IDE 无关(可能除了 jupyter)
但是要得到你想要的,你需要明确地创建两个图像并在每个图像中绘制热图。默认情况下,似乎 seaborn.heatmap
只使用一个图形和一个轴。
import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt
fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()
data = {'A': [45, 31, 42, 35, 39],
'B': [38, 31, 26, 28, 33],
'C': [10, 15, 17, 21, 12],
'D': [9, 14, 16, 22, 141]}
df = pd.DataFrame(data, columns=['A', 'B'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True, ax=ax1)
df = pd.DataFrame(data, columns=['C', 'D'])
corrMatrix = df.corr()
sn.heatmap(corrMatrix, annot=True, ax=ax2)
plt.show()
如果一张有两个轴的图对你来说足够好,你可以用
替换两个子图fig, (ax1, ax2) = plt.subplots(ncols=2)