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绘制可视化地图并展示坐标位置的主要内容,如果未能解决你的问题,请参考以下文章