【发布时间】:2016-06-14 03:13:35
【问题描述】:
我目前有两个大型数据集,我想比较它们。我分别拥有它们,一个是红色的,一个是蓝色的,但是我想并排显示红色和蓝色。我该怎么办?
我当前的代码是:
column_labels = list(heatmap_ylabels)
row_labels = list(heatmap_xlabels)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Reds)
ax.set_xticks(np.arange(9+0.5))
ax.set_yticks(np.arange(140+0.5))
ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
#plt.show()
plt.savefig('n1_heatmap')
plt.clf()
column_labels = list(heatmap_ylabels)
row_labels = list(heatmap_xlabels)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data1, cmap=plt.cm.Blues)
ax.set_xticks(np.arange(9+0.5))
ax.set_yticks(np.arange(140+0.5))
ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
plt.savefig('n2_heatmap')
plt.clf()
data 和 data1 都由 140 个不同的列表组成,其中的信息是从 280 个不同的文件中提取的,有没有办法我仍然可以使用这两个列表来创建一个热图,以相同的方式显示这些数据图?
例如,我的热图将是 /red/blue/red/blue 等
这是我的热图示例:
编辑:
虽然没有准确显示我想要的内容,但我制作了一张热图,显示了前两个热图之间的值差异。
例如:y2 = np.subtract(y, y1)
data2.append(y2)
column_labels = list(heatmap_ylabels)
row_labels = list(heatmap_xlabels)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data2, cmap=plt.cm.bwr)
ax.set_xticks(np.arange(9+0.5))
ax.set_yticks(np.arange(140+0.5))
ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
plt.savefig('diff_heatmap')
plt.clf()
【问题讨论】:
-
当您说“并排显示红色和蓝色”时,您的意思是保持一切相同,但只是让两个数字彼此相邻出现?还是您的意思是在同一张图上同时绘制红色数据和蓝色数据?
-
我想将红色和蓝色数据绘制在同一个图上进行比较,所以列会变成红色/蓝色/红色/蓝色等
标签: python matplotlib heatmap