具有X,Y数据的Matplotlib热图

时间:2019-02-26 22:44:50

标签: python pandas matplotlib heatmap

我想使用matplotlib或另一个热图库在pcolor中创建热图。我发现了很多很棒的例子,但是无法确定如何以正确的格式获取数据,或者使用我的数据所处的格式进行绘图。

这是我的数据设置方式

X  Y  Value
0  1  .6
0  2  .3
0  3  .2
1  1  .8
1  2  .4
1  3  .9

因此,XY列表示(X,Y)对,其中Value是相应单元格的值。我正在努力寻找一种方法来转换数据以使其与pcolor配合使用或另一种绘图方法。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

就像您使用pandas数据框一样。 在将数据透视图数据帧绘制为表格并使用热图方法之前,即从seaborn开始:

import seaborn as sns 
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_clipboard()
table = df.pivot('Y', 'X', 'Value')
ax = sns.heatmap(table)
ax.invert_yaxis()
print(table)
plt.show()

enter image description here

输出:

X    0    1
Y
1  0.6  0.8
2  0.3  0.4
3  0.2  0.9

答案 1 :(得分:0)

您必须将x和y值转换为2D numpy数组。数组的两个维表示x和y,而这些值映射到热图颜色栏。 here给出了更多的颜色图。

import numpy as np
import matplotlib.pyplot as mpl
import matplotlib.cm as cmap

m = np.array([[.6, .3, .2], [.8, .4, .9]])
mpl.imshow(m, cmap=cmap.hot)
mpl.colorbar()
mpl.show()

产生 heatmap example