关于Python可视化Dash工具—散点地图、热力地图、线形地图
2023-03-09 22:15:38 时间
好不容易实现了choropleth_mapbox地图,也顺道把散点地图、热力地图、线形地图处理掉吧,做到有始有终,再迈向新的领域;从微信公众号里拿到了按分省统计的用户数据,又拿到了各地市数据,通过这两种数据分别实现choropleth_mapbox、scatter_mapbox、density_mapbox,至于line_mapbox构造数据过于麻烦,直接拷贝了官网上的案例。
基于分省统计的用户数据,通过choropleth_mapbox进行行政区域的数据展示。
import json
import pandas as pd
import plotly.express as px
# 中国地图
with open('china_geo.json') as response:
counties = json.load(response)
df = pd.read_csv("gongzhonghaopro.csv",encoding="utf-8",
dtype={"areacode": str})
fig = px.choropleth_mapbox(df, geojson=counties, featureidkey="properties.adcode",locations='areacode', color='total',
#color_continuous_scale="Viridis",
range_color=(0, 320),
color_continuous_scale='Reds',
zoom=3, center={"lat": 37.4189, "lon": 116.4219},
mapbox_style='carto-positron')
fig.update_layout(margin={"r": 0, "t": 0, "l": 0, "b": 0})
fig.show()
基于分地市统计的用户数据,通过scatter_mapbox进行各城市的数据展示。这里面不同的地方是直接采用mapbox的地图,而且申请了一个tokenkey,此外数据的构成方面,需要附上各区域的经度、维度、展示数据等信息。
all_data = pd.read_csv("gongzhonghao.csv",encoding="utf-8")
token = 'pk.eyJ1Ijoiam9obndhbmcyMDIxIiwiYSI6ImNrbWNheTJ1NzA4cWQyb21uZHYycTgzMGQifQ.Tyk26CpuPLPi3bpw05yM_A'
fig = px.scatter_mapbox(all_data, lat="langitude", lon="latitude", hover_name="city", hover_data=["city", "total"],
color="total",
size="total",
#color_continuous_scale=px.colors.sequential.matter,
size_max=30,
color_continuous_scale="Reds",
zoom=5, height=1000)
fig.update_layout(mapbox = {'accesstoken': token, #需要到官网注册一个token
'center': {'lon': 106.573, 'lat': 30.66342}, #指定的地图中心
'zoom': 3,
'style': 'basic', #显示的地图类型,有遥感地图,街道地图等类型
},
margin = {'l': 0, 'r': 0, 't': 0, 'b': 0})
fig.show()
基于分地市统计的用户数据,通过density_mapbox进行各城市的数据展示。热力图相对来说呈现效果要好于scatter_mapbox,不过这里面关于range_color的设置一直没想明白该如何正确处理。
all_data = pd.read_csv("gongzhonghao.csv",encoding="utf-8")
print(all_data)
fig = px.density_mapbox(all_data, lat='langitude', lon='latitude', z='total', radius=20,
color_continuous_scale=px.colors.diverging.RdYlGn[::-1],
center={"lat": 37.4189, "lon": 116.4219}, zoom=3,
range_color =(0,15),
mapbox_style="stamen-terrain")
fig.show()
基于官方案例的line_geo地图展示。
下一步该探索一下dash_core_components 、dash_html_components 、idash_bootstrap_components组件了,最终的目标是实现可视化大屏,还有很长的路要走。
相关文章
- 图像处理工具Python扩展库,你了解吗?
- 十个常用的损失函数解释以及Python代码实现
- 30 个数据科学工作中必备的 Python 包
- 如何在 Windows 上安装 Python
- 几行 Python 代码就可以提取数百个时间序列特征
- 使用Python快速搭建接口自动化测试脚本实战总结
- 哪种编程语言最适合开发网页抓取工具?
- 不要在 Python 中使用循环,这些方法其实更棒!
- 震惊!用Python探索《红楼梦》的人物关系!
- 如何最简单、通俗地理解Python模块?
- 酷炫,Python实现交通数据可视化!
- 为什么急于寻找Python的替代者?
- 30 个数据工程必备的Python 包
- 去字节面试被面这题能答上来吗?谈谈你对时间轮的理解?
- 火山引擎在行为分析场景下的 ClickHouse JOIN 优化
- 用Python爬取了某宝1166家月饼数据进行可视化分析,终于找到最好吃的月饼~
- 在 Linux 上试试这个基于 Python 的文件管理器
- Python列表解析式到底该怎么用?
- 如何快速把你的 Python 代码变为 API
- 十个Python初学者常犯的错误