【发布时间】:2016-10-06 03:05:05
【问题描述】:
如何改善此热图的外观?为什么颜色值显示为细长的矩形条(中间有所有空白)而不是正方形,或者这取决于数据文件通常会发生什么?这不是热图应该的样子。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "distributions")))
data = pd.read_csv('dvAng_heatmap.dat',sep='\s',engine='python')
data2 = pd.pivot_table(data.round(2),values='k',index='g',columns='h')
mask = np.isnan(data2)
sns.set(style="white")
xtics = 20
ytics = 10
cmap = "jet"
vmin = None
vmax = None
ax = sns.heatmap(data2, xticklabels=xtics, yticklabels=ytics, mask=mask, linewidths=0, cbar=True, robust=False,cmap=cmap, vmin=vmin, vmax=vmax)
ax.invert_yaxis()
plt.title('Heatmap')
plt.xlabel('angle')
plt.ylabel('separation')
plt.savefig('Heatmap.png', transparent=True)
sns.plt.show()
【问题讨论】:
-
您的数据是什么样的?看来您的数据集中缺少很多 x/y 组合...
-
我已经编辑以包含数据...请看一下...如果是这样的数据,应该使用什么来进行视觉表示?
-
尽管如此,您的数据透视表主要包含缺失值 - 您想在这里实现什么?我认为问题不在于热图......
-
看看来自 Bokeh 的 color_scatter - 这对你来说可能很有趣......
标签: python pandas matplotlib heatmap seaborn