前言
导入基本包
import numpy as np
import pandas as pd
import json
from pandas.io.json import json_normalize
import pyecharts as pe
from collections import Counter
一、geo
官网的例子:
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
g0 = Geo()
g0.add_schema(maptype="china")
g0.add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
g0.set_series_opts(label_opts=opts.LabelOpts(is_show=False))#去掉标识
g0.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_piecewise=True,max_=300),#显示坐下角的颜色控制,max_=300是控制范围的
title_opts=opts.TitleOpts(title="Geo-基本示例"),
)
g0.render_notebook()
可以选择省市:
可以通过maptype来选择具体省市的地图
g0 = Geo()
g0.add_schema(maptype="浙江")#可以通过maptype来选择具体省市的地图
g0.add("geo", [["杭州",50],["宁波",30],["义乌",20],["萧山",99]])
g0.set_series_opts(label_opts=opts.LabelOpts(is_show=False))#去掉标识
g0.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_piecewise=True,max_=300),
title_opts=opts.TitleOpts(title="Geo-基本示例"),
)
g0.render_notebook()
利用g.add_coordinate画自定义坐标
经纬度查询:http://www.gpsspg.com/maps.htm.
from pyecharts.globals import GeoType #导包
g = Geo()
g.add_schema(maptype=city)
g.add_coordinate('杭州师范大学仓前校区',120.0109472358, 30.2910373720)#注意这里要求经度在前维度在后
g.add_coordinate('萧山城厢街道',120.2740081170, 30.1605364542)
data_pair = [('杭州师范大学仓前校区', 100),('萧山城厢街道', 500),("杭州",50)]
g.add('', data_pair,symbol_size=20)
# is_piecewise 是否自定义分段, 变为true 才能生效
g.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_piecewise=True,max_=800),#注意默认max_
title_opts=opts.TitleOpts(title="{}-店铺分布".format(city)),
)
g.render_notebook()
city = '杭州'
g = Geo()
g.add_schema(maptype=city)
# 定义坐标对应的名称,添加到坐标库中 add_coordinate(name, lng, lat)
g.add_coordinate('杭州师范大学仓前校区',120.0109472358, 30.2910373720)#注意这里要求经度在前维度在后
g.add_coordinate('萧山城厢街道',120.2740081170, 30.1605364542)
# 定义数据对
data_pair = [('杭州师范大学仓前校区', 10),('萧山城厢街道', 5),("杭州",50)]
# Geo 图类型,有 scatter, effectScatter, heatmap, lines 4 种,建议使用
# from pyecharts.globals import GeoType
# GeoType.GeoType.EFFECT_SCATTER,GeoType.HEATMAP,GeoType.LINES
# 将数据添加到地图上
g.add('', data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=15)
# 设置样式
g.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 自定义分段 color 可以用取色器取色
pieces = [
{
'max': 6, 'label': '5以下', 'color': '#FF00FF'},
{
'min': 6, 'max': 10, 'label': '5-10', 'color': 'yellow'},
{
'min': 10, 'max': 100, 'label': '10-100', 'color': 'red'} # 有下限无上限
]
# is_piecewise 是否自定义分段, 变为true 才能生效
g.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=pieces),#注意默认max_
title_opts=opts.TitleOpts(title="{}-店铺分布".format(city)),
)
g.render_notebook()
二、map作图
map的功能和geo有不少重合,区别在于可以显示地图区域块
from pyecharts.charts import Map
[list(z) for z in zip(Faker.provinces, Faker.values())]#数据
m1=Map()
m1.add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
m1.set_global_opts(
title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)"),
visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
)
m1.render_notebook()
实例:
2020年重庆各区县GDP地图
import numpy as np
import pandas as pd
from pyecharts.charts import Map
df = pd.read_excel(r"C:\Users\86185\Desktop\重庆各区县GDP.xlsx")
df1 = df.values #转换成画地图的形式
df1
m1=Map()
m1.add("重庆各区县2020年GDP", df1, "重庆")
m1.set_global_opts(
title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)"),
visualmap_opts=opts.VisualMapOpts(max_=2010, is_piecewise=True),
)
m1.render_notebook()