当前位置: 首页 > 科技观察

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

时间:2023-03-13 09:11:58 科技观察

终于实现了choropleth_mapbox地图,顺便也处理一下散点图、热图、线性图,做到有始有终,然后走向一个新的领域;从微信公众号,我们按省市数据获取用户数据,通过这两种数据分别实现了choropleth_mapbox、scatter_mapbox和density_mapbox。案件。基于省统计的用户数据,通过choropleth_mapbox进行行政区域的数据展示。importjsonimportpandasaspdimportplotly.expressaspx#中国地图withopen('china_geo.json')asresponse: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_map=px.scatter_map=px.scatter_map="city",hover_data=["city","total"],color="total",size="total",#color_continuous_scale=px.colors.sequential.matter,size_max=30,color_continuous_scale="红色",zoom=5,height=1000)fig.update_layout(mapbox={'accesstoken':token,#需要在官网注册一个token'center':{'lon':106.573,'lat':30.66342},#specifiedmapcenter'zoom':3,'style':'basic',#显示的地图类型,包括遥感地图、街道地图等},margin={'l':0,'r':0,'':0,'b':0})fig.show()是根据各地市的用户数据,通过density_mapbox展示各市的数据。heatmap的渲染效果相对scatter_mapbox要好一些,但是range_color的设置还没想好如何正确处理。all_data=pd.read_csv("gongzhonghao.csv",encoding="utf-8")print(all_data)fig=px.density_mapbox(all_data,lat='纬度',lon='纬度',z='总计',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组件。最终目标是实现大屏幕可视化,还有很长的路要走。