【数据可视化】用plotly写python代码做地图

本来用pyecharts做好了地图,但是为了和小伙伴实现多图联动,只能再改成plotly。
跟pyecharts比起来,plotly真的太麻烦了!
拖延了两天,我还是对它下手了。

这是我选用的地图类型的官方教程文档:
https://plotly.com/python/mapbox-county-choropleth/

在这里插入图片描述
因为很多图都需要token才能做,所以我们先去搞一个token
点进第一个链接注册个帐号,就来到了这个页面
在这里插入图片描述
在account里面我们就能看到自己的token
在这里插入图片描述
点击copy就可以复制啦
在这里插入图片描述

然后回到地图教程页面
copy一段示例代码
把token换成自己的
在这里插入图片描述
就出现了示例代码的效果网页
在这里插入图片描述
当然有一些示例是不需要token的,也可以不申请token去试试别的图片,确保没有出现别的问题。在试其他图的时候,我发现自己无法import dash,先去解决了这个问题,确保无token也能实现,然后才去申请了token,试了现在的这个代码。

虽然好像图很好看,但是最麻烦的问题还没有来。怎么把它的数据替换成我们自己的数据?
它要求的数据有两个:
在这里插入图片描述
一个是json数据,另一个是一个list
list还问题不大,json数据听上去像是几年前学网页的时候和javascript很像的东西,他们之间确实也能相互转化。但是看到这个要求我人突然傻了,本来以为有了xlsx文件完全莫得问题,没想到给我整这出,还需要json文件,好吧好吧我整!

geojson是为了描绘地图轮廓,比如如果做中国省份地图,就需要china_geojson文件。

世界各国geojson下载链接:
https://files.cnblogs.com/files/firstcsharp/%E4%B8%96%E7%95%8C%E5%9B%BD%E5%AE%B6geojson%E5%A4%A7%E5%85%A8%EF%BC%8C%E5%90%84%E5%9B%BD%E5%9C%B0%E5%9B%BEjson%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD.zip

我要做的是世界地图,所以我选择world的geojson就可以了:
在这里插入图片描述
接下来是处理数据
加上类别和列数
在这里插入图片描述
加下来就可以写代码了

导入文件
在这里插入图片描述
画图把参数改成自己的,要注意其中的几个参数:
geojson要放自己的json文件
color改成自己的val
location也改成自己的
featureidkey要查看一下json文件的格式,选择的参数应该和location一样,不然的话就会出现对不上画不出来的现象,同时也要看一下自己的国家名字和json文件里的是不是一样的。我在处理的时候出现了Russian和Russia,United States和United States of America等不同名称,需要手动修改数据,不然无法识别,就算能画出图,这个国家也匹配不了。

最后出来的效果是这样
在这里插入图片描述

果然比pyecharts的丑多了哈哈哈哈哈
在这里插入图片描述

参考教程:
https://github.com/secsilm/plotly-choropleth-mapbox-demo

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据可视化是将数据转换成形或表的过程,以便于理解和分析数据。Python有许多强大的库用于数据可视化,其中最流行的是`matplotlib`、`seaborn`和`plotly`。这里简单介绍一下这些库: 1. `matplotlib`(Matplotlib Library):这是Python最基础且功能全面的绘库,能够创建线、散点、直方等各种静态表。使用`pyplot`模块,你可以轻松生成表并定制样式。 2. `seaborn`:建立在`matplotlib`之上,提供了更高级的接口和预定义的风格,专为统计形设计,使得复杂的数据探索和美观展示变得容易。 3. `plotly`(Plotly or plotly.express, altair):适用于创建交互式表,特别适合网络形和地理信息系统的地图。它支持Web应用程序的部署,数据探索非常直观。 4. `bokeh`:另一个流行的交互式可视化库,尤其适用于大数据和实时更新的可视化。 5. `pandas.plotting`:这是`pandas`库的一部分,它提供了直接基于DataFrame的内置可视化工具。 要开始数据可视化,你可以按照以下步骤操作: ```python import matplotlib.pyplot as plt import seaborn as sns import pandas as pd # 加载数据 data = pd.read_csv('your_data.csv') # 创建基础线 plt.plot(data['column_name']) plt.show() # 使用seaborn创建更复杂的形 sns.lineplot(x='date', y='value', data=data) plt.show() # 或者使用plotly创建交互式散点 import plotly.express as px fig = px.scatter(data, x='column1', y='column2') fig.show() ``` 相关问题: 1. 你能提供一些`seaborn`的基本用法示例吗? 2. 如何在Python中设置`matplotlib`的表标题和坐标轴标签? 3. 如何在`plotly`中添加例和调整表大小?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值