Jupyter中使用Pyecharts绘制地图

2023-11-10

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

根据各省频率绘制地图,可以使用 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 np
 
province_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地图构建为什么不显示颜色和内容呢?

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jupyter中使用Pyecharts绘制地图 的相关文章

  • 使用 matplotlib 从“列表列表”绘制 3D 曲面

    我已经搜索了一些 虽然我可以找到许多有用的网格网格示例 但没有一个清楚地表明我如何将列表列表中的数据转换为可接受的形式 以适应我所讨论的各种方式 当谈到 numpy matplotlib 以及我所看到的建议的术语和步骤顺序时 我有点迷失 我
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • 如何以“正确”的方式处理带有空字节的 Python unicode 字符串?

    Question PyWin32 似乎很乐意将 null 终止的 unicode 字符串作为返回值 我想以 正确 的方式处理这些字符串 假设我得到一个像这样的字符串 u C Users Guest MyFile asy x00 x00sy
  • Python - 来自 .进口

    我第一次尝试图书馆 我注意到解决图书馆内导入问题的最简单方法是使用如下结构 from import x from some module import y 我觉得这件事有些 糟糕 也许只是因为我不记得经常看到它 尽管公平地说我还没有深入研究
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • Keras:如何保存模型或权重?

    如果这个问题看起来很简单 我很抱歉 但是阅读 Keras 保存和恢复帮助页面 https www tensorflow org beta tutorials keras save and restore models https www t
  • 如何使用文本相似性删除 pandas 数据框中相似(不重复)的行?

    我有数千个数据 这些数据可能相似也可能不相似 使用 python 的默认函数 drop duplicates 并没有真正的帮助 因为它们只检测相似的数据 例如 如果我的数据包含类似以下内容怎么办 嗨 早上好 嗨 早上好 Python 不会将
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • 使用 Pandas 计算 delta 列

    我有一个数据框 如下所示 Name Variable Field A 2 3 412 A 2 9 861 A 3 5 1703 B 3 5 1731 A 4 0 2609 B 4 0 2539 A 4 6 2821 B 4 6 2779 A
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 在 keras 中保存和加载权重

    我试图从我训练过的模型中保存和加载权重 我用来保存模型的代码是 TensorBoard log dir output model fit generator image a b gen batch size steps per epoch
  • 动态过滤 pandas 数据框

    我正在尝试使用三列的阈值来过滤 pandas 数据框 import pandas as pd df pd DataFrame A 6 2 10 5 3 B 2 5 3 2 6 C 5 2 1 8 2 df df loc df A gt 0
  • Python SSL X509:KEY_VALUES_MISMATCH

    Python HTTPS server from http server import HTTPServer SimpleHTTPRequestHandler import ssl https stackoverflow com a 408
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que

随机推荐

  • 2018.09.23 学习笔记 // 前端JavaScript // 变量类型与计算

    学前端也一年了 秋招到现在现在竟然一个offer也没有 框架没有在项目中接触过 基础也没有打牢 真的是有些失败了 虽然一直迷茫 受打击 也不知道是什么支撑着我一直不放弃 可能最后工作也不会做开发 但是总觉得要一直学下去 以上 正文开始 20
  • 漏洞及渗透练习平台

    ZVulDrill https github com 710leo ZVulDrill SecGen Ruby编写的一款工具 生成含漏洞的虚拟机 https github com cliffe secgen btslab渗透测试实验室 ht
  • tcp tw_cycle和tcp_timestamp

    在TCP可选项字段中为TCP预留有时间戳功能 1 TCP可选项格式 kind 1字节 length 1字节 info tcp 选项格式 1 tcp报文格式 由tcp 首部和tcp数据组成 2 tcp首部 由20字节的固定长度和可变长字段组成
  • Python 将不同尺寸的图片和xml标签等比例缩放到指定大小

    Python 将不同尺寸的图片和xml标签等比例缩放到指定大小 xml文件格式 import os import cv2 import numpy as np import xml etree ElementTree as ET path
  • oracle 中的null

    关于null的讨论 http www itpub net thread 932786 1 1 html
  • java并发编程笔记(三)--管程(五)

    8 活跃度 死锁发生的条件 定位死锁的方法 死锁的典型问题 哲学家问题 我们检测下死锁 就比如 我们把随后一个哲学家阿基米德拿筷子的顺序更改 就不会发生死锁 变成 new Philosopher 阿基米德 c5 c1 start 但是这种解
  • 上下文切换理解以及减少方法

    并发编程面临着上下文切换 死锁等问题 尤其在少量数据的情况下 并发可能因为线程的创建和上下文切换的开销等问题 甚至比串行执行的速度更慢 文章目录 上下文切换定义 例子理解 减少上下文切换的方法 无锁并发编程 CAS算法 使用最少线程 协程
  • 【java毕业设计】基于B/S结构+mysql的二手车交易网站设计与实现(程序源码)-二手车交易网站

    基于B S结构 mysql的二手车交易网站设计与实现 程序源码 毕业论文 大家好 今天给大家介绍基于B S结构 mysql的二手车交易网站设计与实现 本论文只截取部分文章重点 文章末尾附有本毕业设计完整源码及论文的获取方式 更多毕业设计源码
  • Vim常用指令

    1 复制 yank 选中的区域并粘贴 put 到另一个区域 在 Vim 中 复制和粘贴被称为 yank 和 put 以下是如何复制 yank 选中的区域并粘贴 put 到另一个区域的步骤 进入可视模式并选择文本 按 v 进入字符可视模式 然
  • 网络类型整理,看你知道几种网络

    目录 无线网络 有线网络 局域网 LAN 城域网 MAN 广域网 WAN 互联网 internet 注意是小写开头 因特网 Internet 注意是大小开头 万维网 WWW 互联网 因特网 万维网是什么关系 我昨天看计算机网络知识的时候 看
  • Map的四种常用实现类的区别

    Map的四种常用实现类的区别 在Java学习中 Map接口主要用四种实现类 分别是HashMap Hashtable linkedHashMap ConcurrentHashMap 这篇文章就来讲讲这四类的区别 HashMap 这是平时使用
  • java 日期转换时间戳_java 日期转时间戳,时间戳转为日期

    package date import java text ParseException import java text SimpleDateFormat import java util Date public class test p
  • JS 事件冒泡和事件捕获

    原文 https www cnblogs com qq9694526 p 5653728 html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的 错就错在后面用jquery去展示了利用事件冒泡的例子有误 其实
  • 常用的快速数学函数(with SSE2 )

    很明显 在工业或者一些智能设备的控制方面 对运行速度的要求总是比较严苛的 有时候 在速度和精度上做一合理的取舍就显得尤为重要了 今天当一个搬运工 带来一些常用的数学库函数 这些函数采用一定的算法对结果进行了高精度的逼近 在工程上应用问题不大
  • Geoserver+mysql+openlayers2

    Geoserver mysql openlayers2 mysql几何数据数据存储参考 DROP TABLE IF EXISTS points CREATE TABLE points id int 11 UNSIGNED NOT NULL
  • AD画PCB,批量修改线宽

    Altium PCB中更改线宽的技巧总结 1 设置altium designer的默认pcb线宽 在布线前直接在设计规则中设置 Design Rules Routing Width 修改这个里面的Preferred Width即可 还可以进
  • [Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发

    Andrioid开发 Splash界面 用户协议与隐私政策弹窗 界面开发 启动页界面开发 首次启动时的启动页用户协议与隐私政策弹窗 只要不点击同意每次打开都会显示弹窗 同意后立即跳转到主界面 当下次再进入软件就是两秒后自动跳转到主界面 实现
  • 建设面向青少年的创客教育实验室

    创客教育的核心是所有学生都是创造者 与为了测试而去记忆知识 创客教育鼓励学生使用他们所知道的去设计和建造项目 这些项目五花八门 可能有黑客 日常物品 音乐编程或使用3D打印机为孩子建立机械假肢 在常规课程中 基础知识部分包括知识背景 项目实
  • Skulpt在线模拟运行Python工具

    1 Skulpt是一个完全依靠浏览器端模拟实现Python运行的工具 2 不需要预处理 插件或服务器端支持 只需编写python并重新载入即可 3 由于代码完全是在浏览器中运行的 所以不必担心 服务器崩溃 问题 github https g
  • Jupyter中使用Pyecharts绘制地图

    背景 根据各省频率绘制地图 根据各省频率绘制地图 可以使用 Pyecharts 绘制 下面是详细的步骤 1 安装 Pyecharts 可以通过 pip install pyecharts 命令安装 2 导入相关库 import pandas