我有一个基于数据可视化的问题。我基本上想从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
相似任何帮助都将受到欢迎。
谢谢!
答案 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 = '')
答案 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)
返回以下图片-
很抱歉提出另一个问题。
另外,感谢您链接到相关文章。