数据可视化——如何绘制地图

简介: 数据可视化——如何绘制地图


前言

前面我们学习了如何利用提供的数据来对数据进行处理,然后以折线图的形式展现出来,那么今天我将为大家分享如何将提数据以地图的形式展现。

如何绘制地图

前面我们绘制折线图需要用到 pyecharts.charts 模块下的 Line 方法,那么要绘制地图我们需要用到 pyecahrts.charts 模块下的 Map 方法。基本思想跟绘制折线图是相似的,不同的就是绘制折线图使用的数据是列表,列表中的每个元素是 字典 ,而绘制地图的数据也是列表,但每个元素是 元组。

导入模块

from pyecharts.charts import Map

创建空地图

map = Map()

提供测试用例

data = [
    ("北京市",499),
    ("上海市",399),
    ("广东省",299),
    ("湖北省",199),
    ("湖南省",99)
]

这里需要注意,我们的数据要和地图上的数据保持一致,例如:地图上是北京市,如果我们用北京,就会出问题。

将数据添加进地图中

map.add("测试地图",data,"china")

第一个参数是绘制的地图的名称。第二个参数是添加的数据,第三个参数是什么类型的地图,默认是中国地图。

生成带有数据的地图

map.render()

当然这种地图看的很单调,我们同样可以添加一些配置项来更生动的展现数据。

添加配置项

map.set_global_opts(
    title_opts=TitleOpts(title="这是一个测试地图",pos_left="center",pos_bottom="1%"),  # 标题
    visualmap_opts=VisualMapOpts(
        is_show=True,  # 是否显示视觉映射
        is_piecewise=True,  # 是否允许自定义颜色
        pieces=[
            {"min": 1,"max": 99,"label": "1-99","color": "#125616"},
            {"min": 100,"max": 199,"label": "100-199","color": "#121d56"},
            {"min": 200,"max": 299,"label": "200-299","color": "#56124d"},
            {"min": 300,"max": 399,"label": "300-399","color": "#565212"},
            {"min": 400,"max": 499,"label": "400-499","color": "#e53436"},
        ])  # 这里如果我们不知道相对应的颜色的代码的话,我们可以去自行去搜索
)

这里需要注意:我们的数据的范围应该与颜色的范围对应,数据的范围应该在设置的颜色的范围内。例如如果你的数据中没有大于500的数据,那么你设置的颜色的范围也不应该包含大于500的范围段。

根据已有数据绘制地图

这里我们的提供的数据是关于中国各省疫情确诊人数的。如果大家也想练手的话,欢迎私信我拿数据。

我们先看看数据的层次。

我们先获取到所有省份的确诊人数。

import json
# 打开数据所在文件
f = open("D:/桌面/疫情.txt","r",encoding="UTF8")
# 读取数据
data = f.read()
f.close()
# 将JSON数据转换为python数据
data_dict = json.loads(data)
province_data_list = data_dict["areaTree"][0]["children"]

将获取到的数据装进元组中。

data_list = []
# 将数据放入元组中
for i in province_data_list:
    province_name = i["name"]
    province_data = i["total"]["confirm"]
    data_list.append((province_name,province_data))

绘制地图

map = Map()
map.add("各省份确诊人数", data_list, "china")
map.set_global_opts(
    title_opts=TitleOpts(title="全国疫情图",pos_left="center",pos_bottom="1%"),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "label": "1-99人", "color": "#cfe4c4"},
            {"min": 100, "max": 999, "label": "100-999人", "color": "#c4d2e4"},
            {"min": 1000, "max": 4999, "label": "1000-4999人", "color": "#e3c4e4"},
            {"min": 5000, "max": 9999, "label": "5000-9999人", "color": "#e4c4d5"},
            {"min": 10000, "max": 99999, "label": "10000-99999人", "color": "#e4cac4"},
        ])
)
map.render("全国疫情图.html")  # 我们可以为形成的html文件命名

整体代码展示

import json
from pyecharts.charts import Map
from pyecharts.options import TitleOpts,VisualMapOpts
map = Map()
# 打开数据所在文件
f = open("D:/桌面/疫情.txt","r",encoding="UTF8")
# 读取数据
data = f.read()
f.close()
# 将JSON数据转换为python数据
data_dict = json.loads(data)
province_data_list = data_dict["areaTree"][0]["children"]
data_list = []
# 将数据放入元组中
for i in province_data_list:
    province_name = i["name"]
    province_data = i["total"]["confirm"]
    data_list.append((province_name,province_data))
map = Map()
map.add("各省份确诊人数", data_list, "china")
map.set_global_opts(
    title_opts=TitleOpts(title="全国疫情图",pos_left="center",pos_bottom="1%"),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "label": "1-99人", "color": "#cfe4c4"},
            {"min": 100, "max": 999, "label": "100-999人", "color": "#c4d2e4"},
            {"min": 1000, "max": 4999, "label": "1000-4999人", "color": "#e3c4e4"},
            {"min": 5000, "max": 9999, "label": "5000-9999人", "color": "#e4c4d5"},
            {"min": 10000, "max": 99999, "label": "10000-99999人", "color": "#e4cac4"},
            # {"min": 1000000, "max": "10万+", "label": "1000000-10万+", "color": "#e4cac4"}
        ])
)
map.render("全国疫情图.html")


相关文章
|
自然语言处理 数据可视化 算法
第5章 数据可视化——5.4 四维图形可视化
第5章 数据可视化——5.4 四维图形可视化
|
Web App开发 数据可视化 BI
数据可视化D3系列——饼状图
饼状图是数据统计中经常用到的另一类图表,饼图可以直观地显示一个数据系列中各项的大小与各项总和的比例,本文将使用D3上手制作一个简单的饼状图 什么是布局 布局是D3中非常重要的内容,有了布局D3才能画出复杂的矢量图。但布局并不是直接绘制图形,只是将初始数据转换成容易画图的图形语言,画图工具能读懂图形语言来进行绘制。 在绘制饼状图中,例如有一组数据[1, 2, 3],只依靠这些数据是画不出的,需要将这些数据转化为圆形的起始角度和终止角度,第一块的角度区域为[0, π/3],第二块的角度区域为[π/3, π]……绘制工具能根据这些角度值进行绘制。「布局只进行数据转换」 D3还提供其他常用图表的
数据可视化D3系列——饼状图
|
3月前
|
数据可视化 数据挖掘 Python
数据可视化不再难!Matplotlib带你轻松绘制精美图表,让数据分析焕发光彩!
【8月更文挑战第22天】今天分享如何用Python的Matplotlib库绘制多样图表。Matplotlib是数据可视化的强大工具,对数据分析至关重要。本文分六部分:首先介绍环境准备,包括安装和配置;随后通过四个案例演示折线图、柱状图、饼图及散点图的绘制方法;最后总结并鼓励大家进一步探索Matplotlib的丰富功能。跟着示例操作,你将学会基本图表的制作,提升数据展示技能。
42 0
|
6月前
|
数据采集 存储 数据可视化
python数据分析——数据可视化(图形绘制基础)
为了绘制好数据可视化图形,需要掌握数据分析的基础知识,例如数据类型、数据预处理、统计方法等。同时,还需要了解绘图工具的使用,例如Excel、Tableau、Python中的Matplotlib和Seaborn等。掌握数据可视化的基础知识和工具,可以帮助我们更好地理解数据和数据之间的关系,从而做出更加准确的决策和预测。
179 1
|
数据可视化
第5章 数据可视化——5.1 图形绘制
第5章 数据可视化——5.1 图形绘制
|
数据可视化
第5章 数据可视化——5.3 三维图形绘制
第5章 数据可视化——5.3 三维图形绘制
|
数据可视化 数据挖掘 数据格式
电影数据可视化-pyecharts世界地图
电影是一种集商业性,艺术性和大众传媒性于一体的特殊人类文化产品,既是社会意识形态中的艺术现象,又是由投资,生产,销售等行为组成的经济现象。对电影榜单状况进行分析,可以更好地为电影市场的经营与管理提供依据。在电影产业蓬勃发展的当下,电影的类型,时长,流行度,发行量,影评人数票房收益和评分数据之间呈现了复杂交错的关系,在商业化背景下,电影业围绕评分和票房展开了轰轰烈烈的利益竞争,而网络评分又表明了观众在综合了思想性,艺术性等方面因素后对电影的综合评价。评分和票房双丰收标志着一部电影的良好市场口碑。为具体研究电影评分与各因素之间的因果关系,运用数据分析与挖掘技术在海量数据中发现这些隐藏的信息。
电影数据可视化-pyecharts世界地图
|
数据可视化 数据挖掘 物联网
三维数据可视化|学习笔记
快速学习三维数据可视化
124 0
三维数据可视化|学习笔记
|
前端开发 数据可视化 JavaScript
数据可视化——从0-1实现折线图(一)
前言 终于又到周末了,上一周的一篇3d文章 带你入门three.js——从0到1实现一个3d可视化地图很开心😺收到了这么多小伙伴的喜欢,这是对我知识输出的肯定。再次感谢大家!这周我又来了,这次给大家分享一下可视化图表比较简单的图表📈但同时我们又不得不学会的 那就是————「折线图」。读完本篇文章你可以学到什么 js实现直线方程 折线图的表达 canvas的一些api灵活的运用 直线折线图 我们先去非常有名的Echarts 官网看一看,他的折线图是什么样子的?如图: 图片 echats折线图 从图中可以得到以下2d图形元素: 直线(两个端点是圆的) 直线(两个端点是直线的) 文字 好
数据可视化——从0-1实现折线图(一)
|
前端开发 JavaScript 数据可视化
数据可视化——从0-1实现折线图(二)
画XY坐标轴 坐标轴本质上就是两条直线,所以第一步确定坐标原点,然后以坐标原点画出垂直和水平的两条直线。我们设置坐标原点离画布的左内边距和底部内边距,这样我们可以通过画布的高度减去底部内边距得到 原点的y, 然后通过画布的宽度减去左内边距得到x, 有了坐标原点画坐标轴就没什么大问题了。代码如下: //定义坐标轴相对于画布的内边距 this.paddingLeft = 30 // 至少大于绘制文字的宽度 this.paddingBottom = 30 // 至少大于绘制文字的高度 this.origin = new Point2d( this.paddingLeft,
数据可视化——从0-1实现折线图(二)