我想使用matplotlib
或另一个热图库在pcolor
中创建热图。我发现了很多很棒的例子,但是无法确定如何以正确的格式获取数据,或者使用我的数据所处的格式进行绘图。
这是我的数据设置方式
X Y Value
0 1 .6
0 2 .3
0 3 .2
1 1 .8
1 2 .4
1 3 .9
因此,X
和Y
列表示(X,Y)
对,其中Value
是相应单元格的值。我正在努力寻找一种方法来转换数据以使其与pcolor
配合使用或另一种绘图方法。任何帮助将不胜感激。
答案 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()
输出:
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()