Pyecharts Geo绘制可视化地图并展示坐标位置

Posted 安替-AnTi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pyecharts Geo绘制可视化地图并展示坐标位置相关的知识,希望对你有一定的参考价值。

文章目录

Pyecharts Geo绘制可视化地图

安装需要的模块

pip install pyecharts

绘制出地图

生成空白地图

第一步:导入中国地图,从pyecharts.charts里面导入Geo,然后确定地区区域

from pyecharts.charts import

pyecharts的一些用法和示例及效果展示(不定更新)

pyecharts的一些用法

1.geo-地图

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import GeoType
import os

g0 = Geo()
g0.add_schema(maptype="杭州")  # 选定地图的范围
g0.add_coordinate("萧山城厢街道", 120.01, 30.29)  # 自定义坐标点,经纬度
g0.add_coordinate("杭师大", 120.27, 30.16)
data_pair = [("萧山城厢街道", 500), ("杭师大", 200)]  # 后者为对应数值
name_map_data = "萧山城厢街道":"xiaoshan",
                 "杭师大":"hangshi"
# type_=GeoType.EFFECT_SCATTER  波纹效果
g0.add("", data_pair=data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=20)  # symbol_size=20数据点的大小
g0.set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter='b'))  # 标注
#  visualmap_opts根据数值不同选则颜色
#  max_最大的值
#  自定义比例尺
pieces = ['max': 301, "label": "300以下", "color": "black",
          "min": 301, "max": 600, "label": "300-600", "color": "#D2FF00"]
g0.set_global_opts(visualmap_opts=opts.VisualMapOpts(pieces=pieces, is_show=True, max_=1000, is_piecewise=True),
                     title_opts=opts.TitleOpts(title="杭州市")
                     )
g0.render("china.html")
os.system("china.html")

结果

2.map-地图

这个例子主要为了展示map的标签名可以自定义。然后我发现世界地图标签会自己贴上所有的国家,感觉挺乱的,那么其实把没用到的国家标签都改为空,就应该可以达到效果了吧。

import ssl

import pyecharts.options as opts
from pyecharts.charts import Map
from pyecharts.datasets import register_url

"""
Gallery 使用 pyecharts 1.1.0 和 echarts-china-cities-js
参考地址: https://echarts.apache.org/examples/editor.html?c=map-HK
"""
ssl._create_default_https_context = ssl._create_unverified_context
# 与 pyecharts 注册,当画香港地图的时候,用 echarts-china-cities-js
register_url("https://echarts-maps.github.io/echarts-china-cities-js")

WIKI_LINK = (
    "http://zh.wikipedia.org/wiki/"
    "%E9%A6%99%E6%B8%AF%E8%A1%8C%E6%94%BF%E5%8D%80%E5%8A%83#cite_note-12"
)
MAP_DATA = [
    ["中西区", 20057.34],
    ["湾仔", 15477.48],
    ["东区", 31686.1],
    ["南区", 6992.6],
    ["油尖旺", 44045.49],
    ["深水埗", 40689.64],
    ["九龙城", 37659.78],
    ["黄大仙", 45180.97],
    ["观塘", 55204.26],
    ["葵青", 21900.9],
    ["荃湾", 4918.26],
    ["屯门", 5881.84],
    ["元朗", 4178.01],
    ["北区", 2227.92],
    ["大埔", 2180.98],
    ["沙田", 9172.94],
    ["西贡", 3368],
    ["离岛", 806.98],
]


NAME_MAP_DATA = 
    # "key": "value"
    # "name on the hong kong map": "name in the MAP DATA",
    "中西区": "中西区",
    "东区": "东区",
    "离岛区": "离岛",
    "九龙城区": "九龙城",
    "葵青区": "葵青",
    "观塘区": "观塘",
    "北区": "北区",
    "西贡区": "西贡",
    "沙田区": "沙田",
    "深水埗区": "深水埗",
    "南区": "南区",
    "大埔区": "大埔",
    "荃湾区": "荃湾",
    "屯门区": "屯门",
    "湾仔区": "湾仔",
    "黄大仙区": "黄大仙",
    "油尖旺区": "油尖旺",
    "元朗区": "元朗",


(
    Map(init_opts=opts.InitOpts(width="1400px", height="800px"))
    .add(
        series_name="香港18区人口密度",
        maptype="香港",
        data_pair=MAP_DATA,
        name_map=NAME_MAP_DATA,
        is_map_symbol_show=False,
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="香港18区人口密度 (2011)",
            subtitle="人口密度数据来自Wikipedia",
            subtitle_link=WIKI_LINK,
        ),
        tooltip_opts=opts.TooltipOpts(
            trigger="item", formatter="b<br/>c (p / km2)"
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=800,
            max_=50000,
            range_text=["High", "Low"],
            is_calculable=True,
            range_color=["lightskyblue", "yellow", "orangered"],
        ),
    )
    .render("population_density_of_HongKong_v2.html")
)

结果

世界地图

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker

zz = [list(z) for z in zip(Faker.country, Faker.values())]
print(zz)
cc = 
for z in zz:
    cc[z[0]] = "  "
c = (
    Map()
    .add("商家A", data_pair=[list(z) for z in zip(Faker.country, Faker.values())], name_map=cc, maptype="world", )  # is_map_symbol_show=False,
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter="b"))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Map-世界地图"),
        visualmap_opts=opts.VisualMapOpts(max_=200),

    )
    .render("map_world.html")
)
import os
os.system("map_world.html")

结果

这几个国家的名字确实没有在图中显示了。

参考的就是官网
https://gallery.pyecharts.org/#/Map/population_density_of_HongKong_v2
https://pyecharts.org/#/zh-cn/intro

以上是关于Pyecharts Geo绘制可视化地图并展示坐标位置的主要内容,如果未能解决你的问题,请参考以下文章

pyecharts的一些用法和示例及效果展示(不定更新)

可视化 | Pyecharts动态绘制比特币近几年股价变迁

Python,Map结合的可视化工具pyecharts实现地图及3D地图的绘制

pyecharts绘制地图可视化

python pyecharts地理坐标热力图Geo

使用pyecharts绘制词云图-淘宝商品评论展示