熊猫DataFrame的热图-2D数组

时间:2019-11-17 14:23:50

标签: python pandas dataframe heatmap

我有一个基于数据可视化的问题。我基本上想从pandas DataFrame创建一个热图,其中有x,y坐标和相应的z值。可以使用以下代码创建数据-

data = ([[0.2,0.2,24],[0.2,0.6,8],[0.2,2.4,26],[0.28,0.2,28],[0.28,0.6,48],[0.28,2.4,55],[0.36,0.2,34],[0.36,0.6,46],[0.36,2.4,55]])
data=np.array(data)
df=pd.DataFrame(data,columns=['X','Y','Z'])

请注意,我只是将数组转换为DataFrame,以便给出一个数组示例。我的实际数据集非常大,我将其作为DataFrame导入python。处理完DataFrame之后,我可以使用上面给出的格式。

我已经看到了基于相同问题的其他问题,但是它们似乎不适用于我的特定问题。也许我没有正确应用它们。我希望我的结果与此处https://plot.ly/python/v3/ipython-notebooks/cufflinks/#heatmaps

相似

任何帮助都将受到欢迎。

谢谢!

2 个答案:

答案 0 :(得分:0)

如何使用plotnine, A Grammar of Graphics for Python

数据

data = ([[0.2,0.2,24],[0.2,0.6,8],[0.2,2.4,26],[0.28,0.2,28],[0.28,0.6,48],[0.28,2.4,55],[0.36,0.2,34],[0.36,0.6,46],[0.36,2.4,55]])
data=np.array(data)
df=pd.DataFrame(data,columns=['X','Y','Z'])

准备数据

df['rows'] = ['row' + str(n) for n in range(0,len(df.index))]
dfMelt = pd.melt(df, id_vars = 'rows')

制作热图

ggplot(dfMelt, aes('variable', 'rows', fill='value')) + \
        geom_tile(aes(width=1, height=1)) + \
        theme(axis_ticks=element_blank(),
              panel_background = element_blank()) + \
        labs(x = '', y = '', fill = '')

heatmap with plotnine

答案 1 :(得分:0)

找到了一种方法-

使用Seaborn。

import seaborn as sns
data = ([[0.2,0.2,24],[0.2,0.6,8],[0.2,2.4,26],[0.28,0.2,28],[0.28,0.6,48],[0.28,2.4,55],[0.36,0.2,34],[0.36,0.6,46],[0.36,2.4,55]])
data=np.array(data)
df=pd.DataFrame(data,columns=['X','Y','Z'])
df=df.pivot('X','Y','Z')
diplay_df = sns.heatmap(df)

返回以下图片-

Heatmap

很抱歉提出另一个问题。

另外,感谢您链接到相关文章。