【Plotly-驯化】一文教你学会画最美动态可视化的热力图:heatmap技巧
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
🌵文章目录🌵
- 🎯 1. 基本介绍
- 🔍 2. 原理介绍
- 🔍 3. 画图实践
- 3.1 数据准备
- 3.2 画图实践
- 🔍 4. 注意事项
- 🔍 5. 总结
下滑查看解决方法
🎯 1. 基本介绍
热力图是一种通过颜色变化展示数据矩阵中数值大小的图表,常用于展示变量间的相关性或数据分布模式。Plotly是一个交互式图表库,它能够创建美观且功能丰富的热力图,允许用户通过悬停查看具体数值,缩放图表等。
🔍 2. 原理介绍
热力图的生成不依赖于复杂的数学公式,但理解其背后的数据表示方式是重要的:
- 颜色映射:数据值映射到颜色空间,通常使用渐变色来表示数值的大小。
- 矩阵布局:数据以矩阵形式排列,每个单元格的数值通过颜色深浅展示。
🔍 3. 画图实践
3.1 数据准备
我们准备的数据格式如下所示:
# plotly standard imports
import plotly.graph_objs as go
import chart_studio.plotly as py# Cufflinks wrapper on plotly
import cufflinks# Data science imports
import pandas as pd
import numpy as np# Options for pandas
pd.options.display.max_columns = 30# Display all cell outputs
from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"from plotly.offline import iplot
import time
cufflinks.go_offline()# Set global theme
cufflinks.set_config_file(world_readable=True, theme="pearl")claps days_since_publication fans link num_responses publication published_date read_ratio read_time reads started_date tags text title title_word_count type views word_count claps_per_word editing_days <tag>Education <tag>Data Science <tag>Towards Data Science <tag>Machine Learning <tag>Python
119 2 574.858594 2 https://medium.com/p/screw-the-environment-but... 0 None 2017-06-10 14:25:00 41.98 7 68 2017-06-10 14:24:00 [Climate Change, Economics] Screw the Environment, but Consider Your Walle... Screw the Environment, but Consider Your Wallet 8 published 162 1859 0.001076 0 0 0 0 0 0
118 18 567.540639 3 https://medium.com/p/the-vanquishing-of-war-pl... 0 None 2017-06-17 22:02:00 32.93 14 54 2017-06-17 22:02:00 [Climate Change, Humanity, Optimism, History] The Vanquishing of War, Plague and Famine Part... The Vanquishing of War, Plague and Famine 8 published 164 3891 0.004626 0 0 0 0 0 0
121 50 554.920762 19 https://medium.com/p/capstone-project-mercedes... 0 None 2017-06-30 12:55:00 20.19 42 215 2017-06-30 12:00:00 [Machine Learning, Python, Udacity, Kaggle] Capstone Project: Mercedes-Benz Greener Manufa... Capstone Project: Mercedes-Benz Greener Manufa... 7 published 1065 12025 0.004158 0 0 0 0 1 1
122 0 554.078160 0 https://medium.com/p/home-of-the-scared-5af0fe... 0 None 2017-07-01 09:08:00 35.85 9 19 2017-06-30 18:21:00 [Politics, Books, News, Media Criticism] Home of the Scared A review of A Culture of Fe... Home of the Scared 4 published 53 2533 0.000000 0 0 0 0 0 0
114 0 550.090507 0 https://medium.com/p/the-triumph-of-peace-f485... 0
3.2 画图实践
我们根据上述的数据画出不同种类的统计柱状图,具体的代码如下所示:
colorscales = ["Greys","YlGnBu","Greens","YlOrRd","Bluered","RdBu","Reds","Blues","Picnic","Rainbow","Portland","Jet","Hot","Blackbody","Earth","Electric","Viridis","Cividis",
]
corrs = df.corr()figure = ff.create_annotated_heatmap(z=corrs.values,x=list(corrs.columns),y=list(corrs.index),colorscale="Earth",annotation_text=corrs.round(2).values,showscale=True,reversescale=True,
)figure.layout.margin = dict(l=200, t=200)
figure.layout.height = 800
figure.layout.width = 1000iplot(figure)
🔍 4. 注意事项
- 热力图中的z参数代表数据矩阵,x和y参数定义了矩阵的行和列标签。
- 可以通过colorscale参数自定义颜色映射方案,Plotly提供了多种预设的颜色方案。
- 使用hoverinfo参数可以控制鼠标悬停时显示的信息,例如可以设置为’z’以显示单元格的数值。
- 对于大数据集,可能需要调整热力图的性能设置,如降低颜色分辨率。
🔍 5. 总结
Plotly的热力图是探索和展示变量间关系的有力工具。通过本博客的代码示例,我们学习了如何使用Plotly绘制热力图,并定制图表的样式和布局。希望这篇博客能够帮助你更好地利用热力图进行数据可视化和分析。