三个变量作为热图

Three variables as heatmap

我想将我的数据绘制成具有以下结构的热图:

X = [1,1,1,1,1,1,1,1,1,1], Y = [1,2,3,4,5,6,7,8,9,10] Z = [0.2, 0.33, 0.1, 0.25, 0.0, 0.9, 0.75, 0.88, 0.44, 0.95]

x轴和y轴用X和Y表示,而'heat'用Z的值表示。

例如在坐标 (x,y) = (1,2) 处,强度应为 0.33 如何使用 matplotlib 实现这一点? 查看与关键字热图相关的帖子,甚至与术语等高线图相关的帖子,我还无法将其转移到这个问题上。

提前感谢您的任何提示 旦

我希望你的数据只是一个例子,因为它看起来很有趣(它更像是一系列条带;x 维度是常数)。

我会推荐使用 pandas (general data-analysis) and seaborn (matplotlib-extensions) 这样会更好一些。

代码

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
X = [1,1,1,1,1,1,1,1,1,1]
Y = [1,2,3,4,5,6,7,8,9,10]
Z = [0.2, 0.33, 0.1, 0.25, 0.0, 0.9, 0.75, 0.88, 0.44, 0.95]
data = pd.DataFrame({'X': X, 'Y': Y, 'Z': Z})
data_pivoted = data.pivot("X", "Y", "Z")
ax = sns.heatmap(data_pivoted)
plt.show()

输出