import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Geo
from pyecharts.globals import GeoType
from pyecharts.charts import Map
from pyecharts.globals import ThemeType # 主题模块
# =============================================
# 柱状图
# 1 实例化,初始化画布:
bar = Bar()
# 2 绘图:
# (1)添加X轴坐标:
bar.add_xaxis(['衬衣', '毛衣', '领带', '裤子'])
# (2)添加y1轴坐标:(系列名称,系列对应的y轴的数据)
bar.add_yaxis('商家A', [114, 55, 27, 110])
# (3)添加y2轴坐标:(系列名称,系列对应的y轴的数据)
bar.add_yaxis('商家B', [57, 134, 129, 69])
# (4)图形的翻转,绘制水平柱状图
bar.reversal_axis()
# (5)系列配置项:LabelOpts:label的配置项,所有参数参照系列配置项中的LabelOpts的官方文档
bar.set_series_opts(
label_opts=opts.LabelOpts(position='right')
)
# (6)全局配置项:所有参数参照全局配置项中官方文档
bar.set_global_opts(
title_opts=opts.TitleOpts(title='厂家销量对比',
subtitle='python')
)
# (最后)生成HTML文件:
bar.render('柱状图.html')
# =======================================================
# (1)初始化
pie = Pie()
# (2)绘图
# 注意所有参数与官方文档对应:
pie.add('',
data_pair=[('第一产业', 1000),
('第二产业', 2000),
('第三产业', 3000)],
# radius=['50%','75%'], # 环形图,内径50%,外径75%
rosetype='area', # 玫瑰图:area通过面积表示占比,radius通过半径表示占比
)
# (3)添加标题
pie.set_global_opts(
title_opts=opts.TitleOpts(
title='产业饼图',
subtitle='python'
)
)
pie.render('饼图.html')
# ============================================
data_0120_ru = '孝感、黄冈、鄂州、荆州、黄石、襄阳'
data_0120_chu = '孝感、黄冈、荆州、襄阳、黄石、荆门、鄂州、随州、仙桃'
data_0121_ru = '孝感、黄冈、荆州、鄂州黄石'
data_0121_chu = '孝感、黄冈、荆州、襄阳、荆门、黄石、随州、鄂州、仙桃'
data_0122_ru = '孝感、黄冈、鄂州、荆州、咸宁、黄石'
data_0122_chu = '孝感、黄冈、荆州、襄阳、荆州、随州、宜昌、黄石、鄂州'
data_ru = [data_0120_ru, data_0121_ru, data_0122_ru]
data_chu = [data_0120_chu, data_0121_chu, data_0122_chu]
data_list_qianxi = []
# data_list_ru = []
for data_str in data_ru:
data_list_qianxi.extend([[i, '武汉'] for i in data_str.split('、')])
for data_str in data_chu:
data_list_qianxi.extend([['武汉', i] for i in data_str.split('、')])
# (1)实例化,画布设置:
geo=Geo(init_opts=opts.InitOpts(width='1200px', # 修改宽度
height='650px', # 修改高度
bg_color='#1f3b4d', # 背景颜色
)
)
# (2)指定地图类型
geo.add_schema(maptype='湖北', # 地图类型:湖北省
itemstyle_opts=opts.ItemStyleOpts(
color='#f97306',
border_color='#ffdf22'
) # 修改地图背景颜色
)
# (3)绘图
geo.add('', # series_name;不想写,设置成空
data_list_qianxi,
type_=GeoType.LINES, # 迁徙线的格式
linestyle_opts=opts.LineStyleOpts(
curve=0.2 # 线的弯曲程度
),
label_opts=opts.LabelOpts(is_show=False), # 是否显示标签
is_large=True, # 是否启用大规模的线图优化,当图形数据特别多的时候可以开启
)
# (4)全局配置项:
geo.set_global_opts(
title_opts=opts.TitleOpts(
title='武汉封城前迁徙图', # 主标题
subtitle='python', # 副标题
pos_left='3%', # 标题距左
pos_top='3%', # 标题距上
title_textstyle_opts=opts.TextStyleOpts(color='#ffffff'),
),
legend_opts=opts.LegendOpts(is_show=False) # 图例
)
geo.render('流向图.html')
#==========================================================================
data=pd.read_excel(r'D:\截至2月17日22时37分疫情数据.xlsx')
print(data.columns)
# 1获取所有省份的对应的确诊数据:并且转为list类型
mask=data['城市']==data['省份']
province_data=data.loc[mask,['省份','确诊数']].drop(labels=[416],axis=0).values.tolist()
# print(province_data)
# 2绘制中国地图:theme主题
map=Map(init_opts=opts.InitOpts(width='1200px',
height='650px',
theme=ThemeType.PURPLE_PASSION, # PURPLE_PASSION紫色激情主题
))
# 3 全局变量设置:
map.set_global_opts(title_opts=opts.TitleOpts(title='中国疫情地图',
subtitle='python'),
visualmap_opts=opts.VisualMapOpts(
is_piecewise=True, # 是否按颜色进行分段切割
pieces=[
{'min':0,'max':10,'label':'1-10','color':'#FFFFE0'},
{'min':11,'max':100,'label':'11-100','color':'#FF9797'},
{'min':101,'max':500,'label':'101-500','color':'#FF5151'},
{'min':501,'max':1000,'label':'501-1000','color':'#FF2D2D'},
{'min':1001,'max':5000,'label':'1001-5000','color':'#EA0000'},
{'min':5001,'max':10000,'label':'5001-10000','color':'#930000'},
{'min':10001,'label':'>10000','color':'#2F0000'},
]
)
)
# 4绘图
map.add('',
data_pair=province_data,
maptype='china',
is_roam=True
)
# 5生成图像
map.render('中国疫情地图.html')
使用echarts绘图
最新推荐文章于 2024-12-22 19:01:58 发布
6052

被折叠的 条评论
为什么被折叠?



