当前位置:主页 > 查看内容

关于Python可视化Dash工具—散点地图、热力地图、线形地图

发布时间:2021-04-24 00:00| 位朋友查看

简介:好不容易实现了choropleth_mapbox地图,也顺道把散点地图、热力地图、线形地图处理掉吧,做到有始有终,再迈向新的领域;从微信公众号里拿到了按分省统计的用户数据,又拿到了各地市数据,通过这两种数据分别实现choropleth_mapbox、scatter_mapbox、density_……

好不容易实现了choropleth_mapbox地图,也顺道把散点地图、热力地图、线形地图处理掉吧,做到有始有终,再迈向新的领域;从微信公众号里拿到了按分省统计的用户数据,又拿到了各地市数据,通过这两种数据分别实现choropleth_mapbox、scatter_mapbox、density_mapbox,至于line_mapbox构造数据过于麻烦,直接拷贝了官网上的案例。

基于分省统计的用户数据,通过choropleth_mapbox进行行政区域的数据展示。

  1. import json 
  2. import pandas as pd 
  3. import plotly.express as px 
  4. # 中国地图 
  5. with open('china_geo.json'as response: 
  6.     counties = json.load(response) 
  7.  
  8. df = pd.read_csv("gongzhonghaopro.csv",encoding="utf-8"
  9.                    dtype={"areacode": str}) 
  10.  
  11. fig = px.choropleth_mapbox(df, geojson=counties, featureidkey="properties.adcode",locations='areacode',  color='total'
  12.                            #color_continuous_scale="Viridis"
  13.                            range_color=(0, 320), 
  14.                            color_continuous_scale='Reds'
  15.                            zoom=3, center={"lat": 37.4189, "lon": 116.4219}, 
  16.                            mapbox_style='carto-positron'
  17.  
  18. fig.update_layout(margin={"r": 0, "t": 0, "l": 0, "b": 0}) 
  19. fig.show() 

基于分地市统计的用户数据,通过scatter_mapbox进行各城市的数据展示。这里面不同的地方是直接采用mapbox的地图,而且申请了一个tokenkey,此外数据的构成方面,需要附上各区域的经度、维度、展示数据等信息。

  1. all_data = pd.read_csv("gongzhonghao.csv",encoding="utf-8"
  2. token = 'pk.eyJ1Ijoiam9obndhbmcyMDIxIiwiYSI6ImNrbWNheTJ1NzA4cWQyb21uZHYycTgzMGQifQ.Tyk26CpuPLPi3bpw05yM_A' 
  3. fig = px.scatter_mapbox(all_data, lat="langitude", lon="latitude", hover_name="city", hover_data=["city""total"], 
  4.                         color="total"
  5.                         size="total"
  6.                         #color_continuous_scale=px.colors.sequential.matter, 
  7.                         size_max=30, 
  8.                         color_continuous_scale="Reds"
  9.                         zoom=5, height=1000) 
  10.  
  11. fig.update_layout(mapbox = {'accesstoken': token, #需要到官网注册一个token 
  12.                             'center': {'lon': 106.573, 'lat': 30.66342},  #指定的地图中心 
  13.                             'zoom': 3, 
  14.                             'style''basic', #显示的地图类型,有遥感地图,街道地图等类型 
  15.                            }, 
  16.                   margin = {'l': 0, 'r': 0, 't': 0, 'b': 0}) 
  17. fig.show() 

基于分地市统计的用户数据,通过density_mapbox进行各城市的数据展示。热力图相对来说呈现效果要好于scatter_mapbox,不过这里面关于range_color的设置一直没想明白该如何正确处理。

  1. all_data = pd.read_csv("gongzhonghao.csv",encoding="utf-8"
  2. print(all_data) 
  3. fig = px.density_mapbox(all_data, lat='langitude', lon='latitude', z='total', radius=20, 
  4.                         color_continuous_scale=px.colors.diverging.RdYlGn[::-1], 
  5.                         center={"lat": 37.4189, "lon": 116.4219}, zoom=3, 
  6.                         range_color =(0,15), 
  7.                         mapbox_style="stamen-terrain"
  8. fig.show() 

基于官方案例的line_geo地图展示。

下一步该探索一下dash_core_components 、dash_html_components 、idash_bootstrap_components组件了,最终的目标是实现可视化大屏,还有很长的路要走。


本文转载自网络,原文链接:https://mp.weixin.qq.com/s/mN4Lb3lzZfoJDgKFXRazxQ
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:详解 ZooKeeper 数据持久化 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐