【问题标题】:Heat map from pandas DataFrame - 2D array来自 pandas DataFrame - 2D 数组的热图
【发布时间】:2020-03-13 01:07:40
【问题描述】:

我有一个基于数据可视化的问题。我基本上想从 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

欢迎任何帮助。

谢谢!

【问题讨论】:

标签: python pandas dataframe heatmap


【解决方案1】:

找到了一种方法 -

使用 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)

返回以下图片 -

很抱歉提出另一个问题。

另外,感谢您提供相关帖子的链接。

【讨论】:

  • 非常感谢。我一直在寻找一种以如此简单的格式绘制x,y,z 数据的方法。谢谢!
【解决方案2】:

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 = '')

【讨论】:

  • 你好。我认为这不起作用,因为 X、Y 和 Z 列中的数据正是它们应该是的。我实际上最终使用 seaborn 解决了它。
猜你喜欢
  • 1970-01-01
  • 2021-12-19
  • 2016-08-25
  • 1970-01-01
  • 2012-08-30
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多