pyecharts对于经纬度_一文带你掌握Pyecharts地理数据可视化的方法

本文主要介绍了Pyecharts地理数据可视化,分享给大家,具体如下:

2e53ficyrca.jpg

一、Pyecharts简介和安装

1. 简介

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

简洁的 API 设计,使用如丝滑般流畅,支持链式调用

囊括了 30+ 种常见图表,应有尽有

支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab

可轻松集成至 Flask,Sanic,Django 等主流 Web 框架

高度灵活的配置项,可轻松搭配出精美的图表

详细的文档和示例,帮助开发者更快的上手项目

多达 400+ 地图文件,并且支持原生百度地图,为地理数据可视化提供强有力的支持

pyecharts版本v0.5.x 和 v1 间不兼容,v1 是一个全新的版本,语法也有很大不同。

2. 安装

安装pyecharts

pip install pyecharts -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

import pyecharts

print(pyecharts.__version__) # 查看当前pyecharts版本

安装相关的地图扩展包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-countries-pypkg # 全球国家地图

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-china-provinces-pypkg # 中国省级地图

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-china-cities-pypkg # 中国市级地图

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-china-counties-pypkg # 中国县区级地图

二、地图可视化

1. 世界地图

利用 Starbucks.csv 中的数据,首先计算每个国家(Country)对应的门店数量,然后使用世界地图可视化展示星巴克门面店在全球的数量分布。

# -*- coding: UTF-8 -*-

"""

@File :demo1.py

@Author :叶庭云

@CSDN :https://yetingyun.blog.csdn.net/

"""

import pandas as pd

from pyecharts.charts import Map

from pyecharts import options as opts

from pyecharts.globals import ThemeType, CurrentConfig

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

# pandas读取csv文件里的数据

df = pd.read_csv("Starbucks.csv")['Country']

# 统计各个地区星巴克门店数量

data = df.value_counts()

datas = [(i, int(j)) for i, j in zip(data.index, data.values)]

# 实例化一个Map对象

map_ = Map(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))

# 世界地图

map_.add("门店数量", data_pair=datas, maptype="world")

map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 不显示label

map_.set_global_opts(

title_opts=opts.TitleOpts(title="星巴克门店数量在全球分布", pos_left='40%', pos_top='10'), # 调整title位置

legend_opts=opts.LegendOpts(is_show=False),

visualmap_opts=opts.VisualMapOpts(max_=13608, min_=1, is_piecewise=True,

pieces=[{"max": 9, "min": 1, "label": "1-9", "color": "#00FFFF"}, # 分段 添加图例注释和颜色

{"max": 99, "min": 10, "label": "10-99", "color": "#A52A2A"},

{"max": 499, "min": 100, "label": "100-499", "color": "#0000FF"},

{"max": 999, "min": 500, "label": "500-999", "color": "#FF00FF"},

{"max": 2000, "min": 1000, "label": "1000-2000", "color": "#228B22"},

{"max": 3000, "min": 2000, "label": "2000-3000", "color": "#FF0000"},

{"max": 20000, "min": 10000, "label": ">=10000", "color": "#FFD700"}

])

)

# 渲染在网页上

map_.render('星巴克门店在全球的分布.html')

运行效果如下:

cdlsjlkrlya.jpg

2. 国家地图

涟漪散点图

利用 china.csv 中的数据,首先计算每个城市(City)对应的门店数量,然后使用 pyecharts 包内 Geo 模块绘制星巴克门面店在中国各城市的数量分布的涟漪散点地图。

import pandas as pd

from pyecharts.globals import ThemeType, CurrentConfig, GeoType

from pyecharts import options as opts

from pyecharts.charts import Geo

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

# pandas读取csv文件数据

df = pd.read_csv("china.csv")['City']

data = df.value_counts()

datas = [(i, int(j)) for i, j in zip(data.index, data.values)]

print(datas)

geo = Geo(init_opts=opts.InitOpts(width='1000px', height='600px', theme=ThemeType.DARK))

geo.add_schema(maptype='china', label_opts=opts.LabelOpts(is_show=True)) # 显示label 省名

geo.add('门店数量', data_pair=datas, type_=GeoType.EFFECT_SCATTER, symbol_size=8)

geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

geo.set_global_opts(title_opts=opts.TitleOpts(title='星巴克门店在中国的分布'),

visualmap_opts=opts.VisualMapOpts(max_=550, is_piecewise=True,

pieces=[{"max": 50, "min": 0, "label": "0-50", "color": "#708090"}, # 分段 添加图例注释 和颜色

{"max": 100, "min": 51, "label": "51-100", "color": "#00FFFF"},

{"max": 200, "min": 101, "label": "101-200", "color": "#00008B"},

{"max": 300, "min": 201, "label": "201-300", "color": "#8B008B"},

{"max": 600, "min": 500, "label": "500-600", "color": "#FF0000"},

])

)

geo.render("星巴克门店在中国的分布.html")

运行效果如下:

wwfjt1zm1bt.jpg

动态轨迹图

# -*- coding: UTF-8 -*-

"""

@File :demo3.py

@Author :叶庭云

@CSDN :https://yetingyun.blog.csdn.net/

"""

from pyecharts import options as opts

from pyecharts.charts import Geo

from pyecharts.globals import ChartType, SymbolType, CurrentConfig, ThemeType

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

# 链式调用

c = (

Geo()

.add_schema(

maptype="china",

itemstyle_opts=opts.ItemStyleOpts(color="#323c48", border_color="#111"),

label_opts=opts.LabelOpts(is_show=True)

)

.add(

"",

[("广州", 55), ("北京", 66), ("杭州", 77), ("重庆", 88), ('成都', 100), ('海口', 80)],

type_=ChartType.EFFECT_SCATTER,

color="white",

)

.add(

"",

[("广州", "上海"), ("广州", "北京"), ("广州", "杭州"), ("广州", "重庆"),

('成都', '海口'), ('海口', '北京'), ('海口', '重庆'), ('重庆', '上海')

],

type_=ChartType.LINES,

effect_opts=opts.EffectOpts(

symbol=SymbolType.ARROW, symbol_size=6, color="blue" # 轨迹线蓝色

),

linestyle_opts=opts.LineStyleOpts(curve=0.2), # 轨迹线弯曲度

)

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

.set_global_opts(title_opts=opts.TitleOpts(title="动态轨迹图"))

.render("geo_lines_background.html")

)

运行效果如下:

j43kulkckpm.jpg

3. 省市地图

热力图

# -*- coding: UTF-8 -*-

"""

@File :demo4.py

@Author :叶庭云

@CSDN :https://yetingyun.blog.csdn.net/

"""

from pyecharts import options as opts

from pyecharts.charts import Geo

from pyecharts.faker import Faker

from pyecharts.globals import GeoType, CurrentConfig

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

c = (

Geo()

.add_schema(maptype="广东", label_opts=opts.LabelOpts(is_show=True))

.add(

"热力图",

[list(z) for z in zip(Faker.guangdong_city, Faker.values())],

type_=GeoType.HEATMAP,

)

.set_series_opts(label_opts=opts.LabelOpts(is_show=True))

.set_global_opts(

visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-广东地图")

)

.render("geo_guangdong.html")

)

运行效果如下:

vmcz4hmmjgb.jpg

地图上批量添加经纬度数据

数据来源于美团网成都地区酒店信息,利用其中酒店的经纬度数据,批量添加在地图上可视化。

# -*- coding: UTF-8 -*-

"""

@File :demo5.py

@Author :叶庭云

@CSDN :https://yetingyun.blog.csdn.net/

"""

import pandas as pd

from pyecharts.charts import Geo

from pyecharts import options as opts

from pyecharts.globals import GeoType, CurrentConfig, ThemeType

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

# 读取Excel数据 数据来源美团网酒店信息

df = pd.read_excel("hotel.xlsx")

# 获取 地点 经纬度信息

geo_sight_coord = {df.iloc[i]['酒店地址']: [df.iloc[i]['经度'], df.iloc[i]['纬度']] for i in range(len(df))}

data = [(df['酒店地址'][j], f"{int(df['最低价'][j])}元(最低价)") for j in range(len(df))]

# print(data)

# print(geo_sight_coord)

# 实例化Geo对象 导入成都地图

g = Geo(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION, width="1000px", height="600px"))

g.add_schema(maptype="成都")

for k, v in list(geo_sight_coord.items()):

# 添加地址、经纬度数据

g.add_coordinate(k, v[0], v[1])

# 生成涟漪散点图

g.add("", data_pair=data, type_=GeoType.EFFECT_SCATTER, symbol_size=6)

g.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

g.set_global_opts(title_opts=opts.TitleOpts(title="成都-酒店地址分布"))

g.render("酒店地址分布.html")

运行效果如下:

3olja3ee5a5.jpg

到此这篇关于一文带你掌握Pyecharts地理数据可视化的方法的文章就介绍到这了,更多相关Pyecharts地理数据可视化内容请搜索聚米学院以前的文章或继续浏览下面的相关文章希望大家以后多多支持聚米学院!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Sqlmap对dvwa进行sql注入测试(初级阶段)

0.测试准备 1)打开Kali虚拟机终端; 2)打开靶机OWASP,并通过浏览器,输入IP地址进入dvwa的主页,然后选择SQL injection进入SQL注入的测试页面 1.获取DVWA的url和cookie 在输入框中输入1,显示有内容&…

如果备份还原SecureCRT、Xshell远程工具远程

因为有时候电脑操作系统要重新安装,需要将远程备份下来。或者要将远程发给其他同事。一、如何备份还原SecureCRT远程1、打开options-global options---general---configuration paths找到配置文件保存路径,如下图:2、打开C:\Users\NUC\AppDat…

Centos7 下yum安装mysql

转载于:https://www.cnblogs.com/nbjjy/p/9023991.html

Python协程--实现斐波那契数列(Fibonacci)的几种方式

1.使用for遍历list数组 # 使用for遍历list数组 nums list() a 0 b 1 i 0while i < 10:nums.append(a)a, b b, abi 1for num in nums:print(num)2.使用迭代器完成 class Fibonacci(object):def __init__(self, all_num):self.all_num all_numself.current_num 0sel…

FTP服务的简介和配置详解

FTP服务的简介和配置详解注意&#xff1a;配置FTP服务时&#xff0c;最好关闭防火墙和selinux1、FTP服务简介FTP 是File Transfer Protocol&#xff08;文件传输协议&#xff09;的英文简称&#xff0c;而中文简称为“文件传输协议”。用于Internet上的控制文件的双向传输。同时…

Python协程--生成器(实现多任务)

0.生成器 1.使用yield完成多任务 import timedef task_1():while True:print("---1----")time.sleep(0.1)yielddef task_2():while True:print("---2----")time.sleep(0.1)yielddef main():t1 task_1()t2 task_2()# 先让t1运行一会&#xff0c;当t1中遇…

技术分享连载(六十一)

资源管理 Q1&#xff1a;Unity5.4.1中&#xff0c;我将需要的Shader打到一个AssetBundle包中&#xff08;包含一个关联了所有Shader的Shader Variants&#xff09;&#xff0c;分别用Shader.WarmupAllShaders和ShaderVariantCollection.WarmUp两种方式进行预加载&#xff0c;后…

SNF软件开发机器人-子系统-导出-导入功能-多人合作时这个功能经常用到

导出 导出可以将资源表和子系统导出并形成一个json文件。 1.效果展示&#xff1a; 2.使用说明&#xff1a; 点击导出按钮后会弹出一个导出页面。页面的左侧可以选择功能&#xff0c;右侧可以选择资源表&#xff0c;选择功能的同时右侧中功能所需的资源表也会被选择。当功能之间…

基于物理的渲染-用真实的环境光照亮物体

目前&#xff0c;在游戏引擎中用于照亮物体的光源非常丰富。其中&#xff0c;比较常用的有&#xff1a;平行方向光、点光源、聚光灯以及体积光等&#xff0c;但它们都是对真实光源的近似&#xff0c;并不能很好地模拟真实世界中的复杂光照情况。为了增加光照效果的真实感&#…

克隆CentOS6虚拟机eth0被修改为eth1如何修改eth0

2019独角兽企业重金招聘Python工程师标准>>> 直接修改 /etc/sysconfig/network-script/ifcfg-eth0 删掉UUID HWADDR 配置静态地址 然后&#xff1a; rm -rf  /etc/udev/rules.d/70-persistent-net.rules然后reboot 转载于:https://my.oschina.net/hengbao666/blog/…

如何高效的编写与同步博客 (.NET Core 小工具实现)

系列目录 [如何高效的编写与同步博客&#xff08;一&#xff09;- 编写 ]如何高效的编写与同步博客&#xff08;二&#xff09;- 快速发布到多个渠道一.前言 写博客&#xff0c;可以带给我们很多好处&#xff0c;比如可以让我们结识更多志同道合的人&#xff1b;在写博客过程中…

mxf高速发展和数字电影母版制作技术

1.实现MXF的诺言——格式只是迈向可互操作内容管理的一步 当把元数据加到数字内容的MXF&#xff08;素材交换格式&#xff09;标准通过EBU于2002年推出时&#xff0c;当时曾预期广播机构将会迅速无缝地管理其所有来自不同厂家的制作、后期和分配系统上的数字内容。 六年过…

Python基础-变量作用域

1.函数作用域介绍 函数作用域 Python中函数作用域分为4种情况&#xff1a; L&#xff1a;local&#xff0c;局部作用域&#xff0c;即函数中定义的变量&#xff1a;E&#xff1a;enclosing&#xff0c;嵌套的父级函数的局部作用域&#xff0c;即包含此函数的上级函数的局部作用…

php爱奇艺筛选标签,三种排序 快速筛选好视频_软件资讯技巧应用-中关村在线

使用在线视频播放器来观看视频&#xff0c;通常有可以分为有目标和无目标两种。即是用户如果定点找一部视频和随意查看喜欢的视频&#xff0c;这两种模式往往查找视频的方法也是不一样的。我们这里要和大家讲解的是&#xff0c;用户在没有目标视频的情况下&#xff0c;怎样更快…

Flask项目--发送短信验证码

1.后端代码 具体代码如下&#xff1a; # GET /api/v1.0/sms_codes/<mobile>?image_codexxxx&image_code_idxxxx api.route("/sms_codes/<re(r1[34578]\d{9}):mobile>") def get_sms_code(mobile):"""获取短信验证码""&q…

Jenkins系列之五——通过Publish over SSH插件实现远程部署

Jenkins通过Publish over SSH插件实现远程部署 步凑一、配置ssh免秘钥登录 部署详情地址&#xff1a;http://www.cnblogs.com/Dev0ps/p/8259099.html 步凑二、安装Publish over SSH插件 插…

php柱状图实现年龄分布,考官雅思写作小作文满分范文 柱状图:年龄分布

考官雅思写作小作文满分范文 柱状图:年龄分布2017年06月12日14:48 来源&#xff1a;小站教育作者&#xff1a;小站雅思编辑参与(40)阅读(63981)摘要&#xff1a;为大家分享前考官simon演示的9分雅思小作文。考官亲笔&#xff0c;用最正统的4段式写作&#xff0c;本文主题-柱状图…