plotly绘图——热力图

文章介绍了如何使用Plotly库在Python中创建基础热力图,展示了如何通过`total_bill`和`tip`数据展示账单与小费的关系,以及如何制作多热力图和显示数字的热力图,以探索不同变量之间的复杂关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

plotly是一个易于使用,功能强大的python绘图库,用于构建可交互式的图表(可以自行运行后使用鼠标拖拽图片试试),本系列文章将介绍plotly绘制各种类型图的方法,本文将介绍——热力图

热力图

基础热力图

代码解释

  • import plotly.express as px:这行代码导入了Plotly库的express模块,并给它起了一个别名px。Plotly是一个流行的交互式图表库,可以创建高质量的图表和可视化。

  • df = px.data.tips():这行代码从Plotly库中加载了一个内置的示例数据集,名为“tips”,并将其存储在变量df中。这个数据集包含了关于餐厅小费的信息,如账单总额、小费金额、顾客人数等。

  • fig = px.density_heatmap(df, x=“total_bill”, y=“tip”):这行代码使用px.data.tips()函数创建了一个密度热图。x=“total_bill"和y=“tip"参数指定了热图的x轴和y轴分别对应数据集中的"total_bill”(总账单)和"tip”(小费)列。这个热图将展示总账单和小费之间的密度关系。

  • fig.show():最后这行代码会显示前面创建的密度热图。这个图表可以帮助观察者理解总账单和小费之间的关系,比如哪些账单总额通常会带来较高的小费。

import plotly.express as px
df = px.data.tips()

fig =
### 使用Python绘制北京市地理热力 #### 准备环境与安装依赖库 为了实现这一目标,首先需要准备相应的开发环境并安装必要的Python包。这通常涉及到地可视化以及数据处理的相关库。 对于地操作和绘图来说,`geopandas`, `folium`, 和 `matplotlib` 是非常有用的工具;而针对热力的制作,则可以借助于 `seaborn` 或者更专业的 `plotly.express` 库[^2]。 ```bash pip install geopandas folium matplotlib seaborn plotly pandas ``` #### 获取或创建数据集 要在北京的地上展示热力信息,必须有一个合适的数据源。该数据应该至少包含两个维度的信息——地理位置(经纬度)和其他用于加权显示强度的因素,比如游客数量、交通流量等,在这里假设已经拥有了这样的CSV文件作为输入[^4]。 #### 加载并预处理数据 加载CSV格式的数据到Pandas DataFrame中,并做初步清理: ```python import pandas as pd data = pd.read_csv('beijing_data.csv') # 替换为实际路径 print(data.head()) ``` 确保DataFrame中有两列代表经度(`lng`)和纬度(`lat`),以及其他任何想要可视化的数值型字段。 #### 绘制基础地 利用Geopandas读取中国行政区划边界矢量数据,并筛选出北京部分来建立底框架。 ```python import geopandas as gpd china_map = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) bj_boundaries = china_map[china_map.name == "China"] # 需要进一步细化至市级行政区域 ax = bj_boundaries.plot(color='white', edgecolor='black') ``` #### 添加热力层 接下来使用Seaborn或者Plotly Express向上述基础上叠加热力效果。以下是基于Seaborn的一个简单例子: ```python import seaborn as sns sns.kdeplot( data=data, x="lng", y="lat", fill=True, # 是否填充颜色 thresh=0.1, # 控制透明度阈值 alpha=.7, # 设置透明度 n_levels=8, # 色阶数目 cmap="Reds", # 颜色映射表 ) plt.show() ``` 如果希望得到交互式的Web页面形式的结果,那么推荐采用Plotly的方式来进行渲染: ```python import plotly.express as px fig = px.density_mapbox( data_frame=data, lat='lat', lon='lng', z='value_column_name_here', # 将此替换为您自己的权重列名 radius=10, center=dict(lat=39.9042, lon=116.4074), # 北京中心位置 zoom=10, mapbox_style="stamen-terrain" ) fig.show() ``` 通过这种方式,不仅可以直观地看到不同地点之间的度差异,还可以方便地调整参数以适应具体需求。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值