Jupyter中使用Pyecharts绘制地图

news/2024/11/29 4:39:51/

背景:根据各省频率绘制地图

根据各省频率绘制地图,可以使用 Pyecharts 绘制。下面是详细的步骤:

1、安装 Pyecharts:可以通过 !pip install pyecharts 命令安装。

2、导入相关库

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map

3、准备数据:需要将各省份和对应频率存储在一个 DataFrame 中,其中列名为 "province" 和 "frequency"。例如:

df = pd.DataFrame({"province": ["北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海市", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆市", "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省", "青海省", "宁夏回族自治区", "新疆维吾尔自治区"],"frequency": [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,130, 140, 150, 160, 170, 180, 190, 200, 210, 220,230, 240, 250, 260, 270, 280, 290, 300, 310]
})

4、绘制地图:使用 Pyecharts 中的 Map 类,将各省份和对应频率填入其中,并设置地图属性。

map_chart = (Map() # 创建地图对象.add("各省份频率分布", [list(z) for z in zip(df["province"], df["frequency"])], "china") # 添加数据,设置地图类型.set_global_opts(title_opts=opts.TitleOpts(title="各省份频率分布图"),visualmap_opts=opts.VisualMapOpts(max_=310, is_piecewise=True), # 设置视觉映射配置,控制颜色范围)
)map_chart.render_notebook() # 在 Jupyter Notebook 中渲染图表

完整代码如下:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
df = pd.DataFrame({"province": ["北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海市", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆市", "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省", "青海省", "宁夏回族自治区", "新疆维吾尔自治区"],"frequency": [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,130, 140, 150, 160, 170, 180, 190, 200, 210, 220,230, 240, 250, 260, 270, 280, 290, 300, 310]
})map_chart = (Map() # 创建地图对象.add("各省份频率分布", [list(z) for z in zip(df["province"], df["frequency"])], "china") # 添加数据,设置地图类型.set_global_opts(title_opts=opts.TitleOpts(title="各省份频率分布图"),visualmap_opts=opts.VisualMapOpts(max_=310, is_piecewise=True), # 设置视觉映射配置,控制颜色范围)
)map_chart.render_notebook() # 在 Jupyter Notebook 中渲染图表

运行结果:

 如果想绘制动态显示的地图:即随着时间的变化,各省份相关数据频率也发生变化,地图中颜色在动态变化显示。

完整代码如下:

from pyecharts import options as opts
from pyecharts.charts import Map, Timeline
import numpy as npprovince_dis = {'宁夏回族自治区':155,'河南省':355, '北京市': 117, '河北省': 521, '辽宁省': 612, '江西省': 126, '上海市':1520, '安徽省': 230, '江苏省': 226, '湖南省': 449,'浙江省': 553, '海南省': 512, '广东省': 712, '湖北省': 118, '黑龙江省': 111, '澳门特别行政区': 191, '陕西省': 211, '四川省': 717, '内蒙古自治区': 113, '重庆市': 13,'广西壮族自治区':81,'云南省': 216, '贵州省': 121, '吉林省': 131, '山西省': 131, '山东省': 111, '福建省': 341, '青海省': 151, '天津市': 131,'新疆维吾尔自治区':150,'西藏自治区':170,'甘肃省':120,'台湾省':31}
provice = list(province_dis.keys())
values = list(province_dis.values())province_dis1 = {'宁夏回族自治区':55,'河南省': 145, '北京市': 137, '河北省': 121, '辽宁省': 112, '江西省': 16, '上海市':120, '安徽省': 110, '江苏省': 116, '湖南省': 119,'浙江省': 113, '海南省': 12, '广东省': 212, '湖北省': 18, '黑龙江省': 111, '澳门特别行政区': 11, '陕西省': 111, '四川省': 17, '内蒙古自治区': 13, '重庆市': 13,'广西壮族自治区':81,'云南省': 16, '贵州省': 21, '吉林省': 31, '山西省': 11, '山东省': 111, '福建省': 41, '青海省': 51, '天津市': 11,'新疆维吾尔自治区':150,'西藏自治区':170,'甘肃省':120,'台湾省':31}
values1 = list(province_dis1.values())sum_vlaues=[]
sum_vlaues.append(values),sum_vlaues.append(values1)tl = Timeline()
for i in range(2015, 2017):map_min=int(np.min(sum_vlaues[i-2015]))map_max=int(np.max(sum_vlaues[i-2015]))china = (Map().add("", [list(z) for z in zip(provice, sum_vlaues[i-2015])], "china").set_global_opts(title_opts=opts.TitleOpts(title="中国地图"), visualmap_opts=opts.VisualMapOpts(type_='color',min_=map_min,max_=map_max)))tl.add(china, "{}年".format(i))
tl.add_schema(is_auto_play=True, play_interval=1000)      # 自动播放,跳动的间隔为1000ms
tl.render_notebook()

运行结果(2015年动态地图):

 2016年动态地图:

 注意:Pyecharts地图构建为什么不显示颜色和内容呢?

运行结果显示就一个灰白的地图,心想着明明有传入数据,为啥不根据频率显示颜色呢?

 原因:传入的数据中,各省市的名称必须要和地图上显示的名称一致,不能简写。如有简写,则需要将北京改为北京市,如果有自治区,就写内蒙古自治区,湖南要写成湖南省,澳门要写成澳门特别行政区。


http://www.ppmy.cn/news/455371.html

相关文章

linuxOPS系统服务_Linux下软件的安装方式之源码安装

Linux下有哪些软件安装方式 ① RPM软件包管理(软件名称.rpm) ② YUM软件包管理(使用yum命令install 软件名称) > 下载 安装一体化 ③ 源码编译安装(相对来说是最复杂的一种方式) 软件包类型 ☆ 二…

解决小米等手机ADB连接不上的问题

默认情况下,小米/红米手机禁止通过adb安装应用,会报INSTALL_FAILED_USER_RESTRICTED错误。 以下操作基于红米Note4X MIUI9.6版本 操作步骤 进入开发者模式 位置:设置->我的设备->全部参数 连续点击五次MIUI版本,进入开发…

小米11pro什么时候发布 小米11pro参数配置

据爆料小米11pro有可能会在2021年1月份发布,新旗舰有望在高通骁龙技术峰会之后官宣,值得期待。 小米手机爆降600 这活动太给力了 机会不容错过 https://www.xiaomi.com.cn 小米11 Pro采用的是一块6.77英寸的曲面屏,左上角单孔设计&#xff0…

(最详细)小米Note 2的usb调试模式在哪里开启的教程

当我们使用安卓手机链接Pc的时候,或者使用的有些工具比如我们学院营销团队当使用的工具引号精灵,之前使用的老版本就需要开启USB开发者调试模式下使用,现当新版本不需要了,如果手机没有开启USB开发者调试模式,Pc则无办…

小米在B站,跟1500万年轻人聊了啥?

“我有能力把稻草卖成金条。” 2015年,一位被推荐到小米的“牛人”,对小米创始人雷军夸下海口。 然而,尽管对方的简历近乎完美,但还是被拒绝了。雷军的理由是,对方跟小米的价值观不相符——小米不喜欢骗用户的人。 …

小米登录协议分析_520小米抢购HTTP协议分析

首现是这次抢到的结果(看来我不适合做黄牛) 下面是整个过程的HTTP通信协议分析: 每个手机都有一个编号比如:、 note联通 2141800009 note 移动增强 2141800008 note 移动标准 2141200012 1s 移动 灰 2141600006 1s 联通 灰 2141600007 选择…

红米note9pro刷鸿蒙,红米Note10Pro:正式说你好,红米Note9Pro:彻底说再见!

原标题:红米Note10Pro:正式说你好,红米Note9Pro:彻底说再见! 预热已久的红米Note10系列终于正式发布了,对于消费者来说,这真的是一则好消息,同时也会千元市场带来了不小的压力。 而今天我们重点来和大家聊一聊红米Note10Pro和红米 Note9Pro的对比情况,毕竟两款机型属于…

小米note2不上Android9吗,小米5S/Note 2配置揭底:不用曲面屏

小米5真机图赏:硬件全面升级手感佳 相比之前的产品小米5在参数性能上有了巨大升级,骁龙820处理器、1600万像素主摄像头、正面按压式指纹识别等旗舰配置一应俱全,同时在外观设计上的突破也让我们眼前一亮,加入了陶瓷工艺后壳材质&a…