pyecharts geo绘制地理信息地图

简介

要了解pyecharts,必须先理解echarts的概念。echarts是一个由百度开源的商业级数据图表,它是一个纯JavaScript的图表库,可以为用户提供直观生动,可交互,可高度个性化定制的数据可视化图表。通常在前端用于数据展示。pyecharts顾名思义,python实现绘制echarts图标的类库:geo、map。
此文章重点讲解pyecharts-geo类图(地理坐标系),支持在地理坐标系上绘制点,线等,常用来制作航行路线、标记事件地点等

一、安装

1、安装 pyecharts包

在线安装离线安装
pip install pyecharts==1.7.1地址https://pypi.org/project/pyecharts/1.7.1/#files

2、安装世界地理地图包:世界地图和 213 个国家,包括中国地图

在线安装离线安装
pip install echarts-countries-pypkg==0.1.6地址https://pypi.org/project/echarts-countries-pypkg/#files

3、安装世界城市包:地图扩展包,需要时再装。为了解决县级以下地区重名,所以官方没有在之前的五个地图包提供县区级以下的地点,但提供了这一个全球的地图数据扩展包,它就是帮助我们检索一些在之前的五个地图包中没有而你又需要用到的地点。

在线安装离线安装
pip install echarts-cities-pypkg==0.0.1地址https://pypi.org/project/echarts-cities-pypkg/#files

4、安装中国省级地图包:23 个省,5 个自治区

在线安装离线安装
pip install echarts-china-provinces-pypkg==0.0.3地址https://pypi.org/project/echarts-china-provinces-pypkg/#files

5、安装中国市级地图包:370 个中国城市

在线安装离线安装
pip install echarts-china-cities-pypkg==0.0.9地址https://pypi.org/project/echarts-china-cities-pypkg/#files

5、安装中国县级地图包:2882 个中国县·区

在线安装离线安装
pip install echarts-china-counties-pypkg==0.0.2地址https://pypi.org/project/echarts-china-counties-pypkg/#files

6、安装其它包:这两个包我没装,效果也出来了。网上都说让装,这个看自己取舍

在线安装离线安装描述
pip install echarts-china-misc-pypkg==0.0.1地址https://pypi.org/project/echarts-china-misc-pypkg/#files网上说是11 个中国区域地图,比如华南、华北。不过我没找到华南华北地区。。。
pip install echarts-united-kingdom-pypkg==0.0.1地址https://pypi.org/project/echarts-united-kingdom-pypkg/#files

注:离线安装时,wheel直接使用pip install xxx.whl,tgz包解压后进入执行python setup.py install

二、参数讲解

参数数据类型描述
name字符串视角中心
series_name字符串图例名称
data_pair列表数据
type_字符串地图类型。geo地图有scatter、effectScatter、heatmap、lines四种可选择,默认"scatter"
maptype字符串地图限定区域,如world、china、河南、青岛市等
color字符串属性颜色
curve浮点连线弯曲度
opacity浮点连线透明度
symbol字符串图例涟漪属性(比如流程图的箭头形状,属性非必须)
symbol_size整形&浮点型图例(如点、线)大小,默认为12
trail_length整型&浮点型特效尾迹的长度
scale整型&浮点型涟漪大小,当type_="effectScatter"时才有效
title字符串主标题
subtitle字符串副标题
title_text_size整形&浮点型主标题字体大小。默认为18
subtitle_text_size整形&浮点型副标题字体大小。默认为12
is_show布尔类型是否显示图例标签(隐藏/展开图例)
zoom整形&浮点型视角中心缩放倍数
is_animation布尔类型是否开启动画,默认为True
is_roam布尔类型是否开启鼠标缩放和平移漫游。scale缩放、move平移、True都开启;默认为True
geo_emphasis_color字符串点击地图触发颜色
pos_right字符串左右对齐方式,有right、left、center,参考值center
pos_top字符串上下对齐方式,百分比表示,参考值5%
width字符串画布宽度
height字符串画布高度
background_color字符串画布背景颜色,默认为 ‘#fff’
title_color字符串主标题颜色,默认为’#000’
subtitle_color字符串副标题颜色,默认为’#aaa’
border_color字符串地图边界颜色,默认为’#111’
theme字符串主题风格,详情https://blog.csdn.net/qq_41595507/article/details/102947622
add_coordinate方法pyecharts添加自定义坐标,三个参数分别是坐标名称、经度、纬度

三、样例

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import GeoType, ThemeType, SymbolType  # Geo图的类型 主题 涟漪图形符号
# 吉林长春有朝阳区,北京也有朝阳区。为了不影响效果,将北京朝阳区换成了东城区
# 在python资源库查看包含朝阳字的地区:python包路径site-packages-pyecharts-datasets-json文件
data = [("海淀区", "1503"), ("东城区", "9540"), ("石景山区", "4820"), ("丰台区", "3670"), ("通州区", "6493")]

geo = (
    Geo(init_opts=opts.InitOpts(width="1000px", height="800px", theme=ThemeType.DARK))
        .add_schema(maptype="北京",  # 如果改成china为有什么效果呢,可以试试哦!!!
                    itemstyle_opts=opts.ItemStyleOpts(color='white', border_color="#EE2C2C"),
                    zoom=1.5,
                    is_roam=True,
                    center=Geo().get_coordinate('海淀区'),  # 视角中心
                    emphasis_itemstyle_opts=opts.ItemStyleOpts(color="#31708f"),  # 高亮颜色
                    emphasis_label_opts=opts.LabelOpts(color="white")   # 字体颜色
                    )

        # 上面提到有重复的名称,可以手动添加一个新名字来代替朝阳区,比如北京朝阳区方法如下
        .add_coordinate("北京朝阳区", 116.48548, 39.9484)

        .add("店铺数量",
             data,
             type_=GeoType.EFFECT_SCATTER,
             symbol_size=6,
             )

        .add("走直线",
             [("海淀区", "东城区"), ("海淀区", "丰台区"), ("海淀区", "石景山区"), ("海淀区", "通州区")],
             type_=GeoType.LINES,
             effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW, symbol_size=6, color='#5f99bb'),
             linestyle_opts=opts.LineStyleOpts(curve=0, color="#B0E2FF"))
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
        title_opts=opts.TitleOpts(title="北京市", subtitle="数据大图", pos_right="center", pos_top="5%"))
)
geo.render()

四、结束

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以按照以下步骤使用 pyecharts.charts Geo 绘制非洲地图: 1. 安装 pyecharts 库:可以使用 pip 命令进行安装。 2. 导入需要的库: ```python from pyecharts.charts import Geo from pyecharts import options as opts from pyecharts.globals import ChartType, SymbolType ``` 3. 准备数据:需要准备每个国家对应的数据。 ```python data = [ ("Algeria", 121), ("Angola", 11), ("Benin", 0), ("Botswana", 2), ("Burkina Faso", 2), ("Burundi", 0), ("Cameroon", 21), ("Cape Verde", 0), ("Central African Republic", 0), ("Chad", 4), ("Comoros", 0), ("Congo", 7), ("Cote d'Ivoire", 19), ("Djibouti", 0), ("Egypt", 217), ("Equatorial Guinea", 0), ("Eritrea", 0), ("Ethiopia", 8), ("Gabon", 2), ("Gambia", 0), ("Ghana", 7), ("Guinea", 0), ("Guinea-Bissau", 0), ("Kenya", 14), ("Lesotho", 0), ("Liberia", 0), ("Libya", 68), ("Madagascar", 0), ("Malawi", 0), ("Mali", 0), ("Mauritania", 2), ("Mauritius", 0), ("Morocco", 105), ("Mozambique", 0), ("Namibia", 2), ("Niger", 3), ("Nigeria", 267), ("Rwanda", 0), ("Sao Tome and Principe", 0), ("Senegal", 3), ("Seychelles", 0), ("Sierra Leone", 0), ("Somalia", 0), ("South Africa", 177), ("South Sudan", 0), ("Sudan", 40), ("Swaziland", 0), ("Tanzania", 0), ("Togo", 0), ("Tunisia", 39), ("Uganda", 0), ("Western Sahara", 0), ("Zambia", 3), ("Zimbabwe", 4), ] ``` 4. 创建 Geo 实例,并设置参数: ```python geo = ( Geo() .add_schema(maptype="非洲") .add( "非洲国家", # 图例名称 data, # 数据 type_=ChartType.EFFECT_SCATTER, # 散点图 color="red", # 散点颜色 symbol_size=16, # 散点大小 label_opts=opts.LabelOpts(is_show=False) # 隐藏标签 ) .set_series_opts( # 鼠标悬停效果 label_opts=opts.LabelOpts(formatter="{b}"), tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}") ) .set_global_opts( # 标题 title_opts=opts.TitleOpts(title="非洲地图"), # 显示工具栏 toolbox_opts=opts.ToolboxOpts(is_show=True), # 鼠标缩放和平移 visualmap_opts=opts.VisualMapOpts(is_piecewise=True), # 显示背景 graphic_opts=[ opts.GraphicGroup( graphic_item=opts.GraphicItem( # 图片地址 graphic_type="image", graphic_shape_coords=[0, 0, 400, 400], graphic_basicstyle_opts=opts.GraphicBasicStyleOpts( fill="#fff" ), graphic_style_opts={ "image": "https://s3-us-west-2.amazonaws.com/s.cdpn.io/15309/world-map.png" } ) ) ] ) ) ``` 5. 渲染图表: ```python geo.render("africa.html") ``` 这样就可以生成一个名为 africa.html 的文件,用浏览器打开即可显示非洲地图。 完整代码如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境gwx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值