难以绘制seaborn热图的序列

时间:2018-01-12 19:06:28

标签: python-3.x data-visualization seaborn

每当我绘制单个海鞘热图时,我都会得到一个漂亮的结果,如下所示:

enter image description here

但是,当我尝试绘制一系列seaborn热图时,如下所示,我得到了非常奇怪的输出:

for i in range(5):

    # create mesh grid:
    res = 0.1 ## set resolution
    X,Y = 10, 10
    xy = np.mgrid[0:int(X):res, 0:int(Y):res].reshape(2,-1).T
    values = np.sum(xy,1)
    sns.heatmap(values.reshape((int(X/res),int(Y/res))),cmap="YlGnBu")

    plt.savefig(folder+"_"+str(i)+"_.png")

序列中的第一个图像是完美的,但第二个图像是这样的:

enter image description here

第三个看起来像这样:

enter image description here

......等等。出于原因,我无法理解,似乎seaborn每次都会以某种方式添加新的颜色条。

当我将cbar设置为False时,此问题不存在,但实际上我想为每个热像图设置一个颜色条。

1 个答案:

答案 0 :(得分:1)

您似乎更愿意创建5个人物。要创建图形,您可以使用plt.figure()

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

for i in range(5):
    plt.figure()
    # create mesh grid:
    res = 0.1 ## set resolution
    X,Y = 10, 10
    xy = np.mgrid[0:int(X):res, 0:int(Y):res].reshape(2,-1).T
    values = np.sum(xy,1)
    sns.heatmap(values.reshape((int(X/res),int(Y/res))),cmap="YlGnBu")

    plt.savefig("seaborn_"+str(i)+"_.png")

plt.close("All")

或者,您可以使用plt.clf()清除该图。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

for i in range(5):
    plt.clf()
    # create mesh grid:
    res = 0.1 ## set resolution
    X,Y = 10, 10
    xy = np.mgrid[0:int(X):res, 0:int(Y):res].reshape(2,-1).T
    values = np.sum(xy,1)
    sns.heatmap(values.reshape((int(X/res),int(Y/res))),cmap="YlGnBu")

    plt.savefig("seaborn_"+str(i)+"_.png")