map和geo画广东和全国地图
# pip install echarts-countries-pypkg
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ChartType, SymbolType
import os
# 设置工作目录,图表都会保存到这里
os.chdir('E:\\python\\pyecharts')
# 将数据处理成列表
locate = ['北京', '天津', '河北', '山西', '内蒙古', '辽宁', '吉林', '黑龙江', '上海', '江苏', '浙江', '安徽', '福建', '江西', '山东',
'河南', '湖北', '湖南', '广东', '广西', '海南', '重庆', '四川', '贵州', '云南', '陕西', '甘肃', '青海', '宁夏', '新疆', '西藏']
app_price = [10.84, 8.65, 18.06, 8.90, 5.04, 29.20, 8.98, 17.80, 27.81, 24.24, 12.72, 11.10, 6.30, 7.00, 22.45,
16.92, 11.00, 14.99, 18.85, 5.85, 1.40, 7.32, 14.61, 4.62, 6.05, 8.07, 6.73, 15.54, 13.00, 39.07, 25.61, 21.3]
list1 = [[locate[i], app_price[i]] for i in range(len(locate))]
# list2 = [list(z) for z in zip(locate, app_price)]
# eg1.普通写法,不建议,建议用链式写法
# 普通写法,不建议,建议用链式写法
# eg1 = Map()
# eg1.set_global_opts(
# title_opts=opts.TitleOpts(title="2019年全国各省苹果价格表"),
# visualmap_opts=opts.VisualMapOpts(max_=50) # 最大数据范围
# )
# eg1.add("2019年全国各省苹果价格", list1, maptype="china")
# eg1.render('eg1.html')
# eg2.中国地图,链式写法
list1 = [list(z) for z in zip(Faker.provinces, Faker.values())]
map_china = (
Map()
.add("系列名称", list1, maptype="china")
# .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 默认显示标签
.set_global_opts(
title_opts=opts.TitleOpts(title="Map-基本示例"),
visualmap_opts=opts.VisualMapOpts(max_=50) # 最大数据范围
# visualmap_opts=opts.VisualMapOpts(max_=50, is_piecewise=True) # 默认为连续型,is_piecewise=True 改为分段型
)
)
map_china.render('map_china.html')
# eg2.map_world
list2 = [list(z) for z in zip(Faker.country, Faker.values())]
map_world = (
Map()
.add('系列名称',list2, maptype='world')
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 默认显示标签
.set_global_opts(
title_opts=opts.TitleOpts(title='Map_world')
)
)
map_world.render('map_world.html')
# eg4.map_guangdong
list3 = [list(z) for z in zip(Faker.guangdong_city, Faker.values())]
map_guangdong = (
Map()
.add("系列名称", list3, maptype="广东")
.set_global_opts(
title_opts=opts.TitleOpts(title="Map-广东地图"),
visualmap_opts=opts.VisualMapOpts()
)
)
map_guangdong.render('map_guangdong.html')
# eg4.geo_china
geo_china = (
Geo()
.add_schema(maptype='china')
.add('系列名称', list1)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 默认显示标签
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title='geo-基本示例'))
)
geo_china.render('geo_china.html')
# eg5.geo 函数写法
def geo_base() -> Geo: # 函数注释
c = (
Geo()
.add_schema(maptype="china")
.add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Geo-基本示例"),
)
)
return c
geo_base().render('geo_base.html')
# pyecharts V1.x版本
from pyecharts.charts import Calendar
import random
import datetime
import pyecharts
import pyecharts.charts
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.render import make_snapshot # 渲染图片
from snapshot_selenium import snapshot
from pyecharts.globals import ThemeType
import os
# 查看当前版本 1.x 和 0.5 代码不兼容
print(pyecharts.__version__)
# 设置工作目录,图表都会保存到这里
os.chdir('E:\\python\\pyecharts')
# bar1 链式调用
bar = (
Bar()
.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
# .set_global_opts(title_opts={"text": "衣服销量", "subtext": "副标题"})
.set_global_opts(title_opts=opts.TitleOpts(title='主标题',subtitle='副标题'))
)
bar.render('myechart1.html')
# bar2 单独调用
x = ["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"]
y1 = [114, 55, 27, 101, 125, 27, 105]
y2 = [57, 134, 137, 129, 145, 60, 49]
bar2 = Bar()
bar2.add_xaxis(x)
bar2.add_yaxis("商家A",y1)
bar2.add_yaxis("商家B",y2)
bar2.set_global_opts(title_opts={"text": "衣服销量", "subtext": "副标题"})
bar2.render('myechart2.html')
# 渲染图片
bar = (
Bar()
.add_xaxis(x)
.add_yaxis("商家A", y1)
)
make_snapshot(snapshot, bar.render(), 'bar.png')
# 使用主题
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.SHINE))
.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
# .set_global_opts(title_opts={"text": "衣服销量", "subtext": "副标题"})
.set_global_opts(title_opts=opts.TitleOpts(title='主标题',subtitle='副标题'))
)
bar.render('myechart3.html')
# 日历图
import datetime
import random
from pyecharts import options as opts
from pyecharts.charts import Calendar
def calendar_base():
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range((end - begin).days + 1)
]
c = (
Calendar()
.add("", data, calendar_opts=opts.CalendarOpts(range_="2017"))
.set_global_opts(
title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"),
visualmap_opts=opts.VisualMapOpts(
max_=20000,
min_=500,
orient="horizontal",
is_piecewise=True,
pos_top="230px",
pos_left="100px",
),
)
)
return c
calendar_base().render('calendar.html')
plt.plot(x,y)