每当我绘制单个海鞘热图时,我都会得到一个漂亮的结果,如下所示:
但是,当我尝试绘制一系列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")
序列中的第一个图像是完美的,但第二个图像是这样的:
第三个看起来像这样:
......等等。出于原因,我无法理解,似乎seaborn每次都会以某种方式添加新的颜色条。
当我将cbar设置为False时,此问题不存在,但实际上我想为每个热像图设置一个颜色条。
答案 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")