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)