通过pip清华镜像源安装pyecharts
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
echarts官网:https://www.echartsjs.com/index.html
pyecharts官网:https://pyecharts.org/#/zh-cn/intro
pyecharts众多图表示例代码:https://gallery.pyecharts.org/#/README
pyecharts github项目国内镜像: https://gitee.com/mirrors/pyechart
在系列配置项中,有些配置里的参数只能在set_global_opts中生效 (全局,图标外),有些只能在set_series_opts中生效(系列,只能在图表内)
绘制圆饼图
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
#准备数据
L1=['化学药','中成药','生物制品','保健品','中药饮片']
num = [33,45,3,9,6,4]
#往该实例填充数据
c = Pie()
c.add("", [list(z) for z in zip(L1,num)])
#设置“全局配置项”
c.set_global_opts(title_opts=opts.TitleOpts(title="全国药店药品销售额占比"))
# 设置“系列配置项”
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
# 展示图表(渲染图表)
c.render_notebook()
运行效果:
绘制圆环图
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
#准备数据
wd = ['化学药','中成药','生物制品','保健品','中药饮片']
num = [33,45,3,9,6,4]
#往该实例填充数据
c = Pie()
c.add("",[list(z) for z in zip(wd, num)],radius = ["40%", "75%"])
# 圆环的粗细和大小
c.set_global_opts( title_opts=opts.TitleOpts(title="全国药店药品销售额占比",subtitle='用于反映中药市场趋势'),legend_opts=opts.LegendOpts(is_show=False),toolbox_opts=opts.ToolboxOpts(is_show=True))
c .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))
# 展示图表(渲染图表)
c.render_notebook()
运行效果
用一张独立画布,柱形图和折线图融合在同一个坐标系展示表1数据
import pyecharts.options as opts
from pyecharts.charts import Bar,Line,Scatter,Pie
x_data = ['2014年','2015年','2016年','2017年','2018年','2019年','2020年','2021年']
bar = (
Bar()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="诊疗量",
y_axis=[87430,90912,96225,101885,107147,116390,105764,120215],
label_opts=opts.LabelOpts(is_show=False),
z =2,
)
.set_global_opts(title_opts=opts.TitleOpts(title='2014-2021年中国中医类医疗卫生机构诊疗量', pos_left='center'),legend_opts=opts.LegendOpts(is_show=False))
.extend_axis(
yaxis=opts.AxisOpts(
name="同比增速(%)",
type_="value",
min_=-20,
max_=20,
interval=10,
axislabel_opts=opts.LabelOpts(formatter="{value} "),
)
)
)
line = (
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name='诊疗量(万人次)',
# 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。
yaxis_index=1, # 第一条y轴索引为0,第二条y轴索引为1
y_axis=[7.40,4.00,5.83,5.81,5.16,8.63,-9.13,13.66],
label_opts=opts.LabelOpts(is_show=False),
z = 3, # z值小的图形会被z值大的图形覆盖
)
)
bar.overlap(line).render_notebook() # 柱形图 层叠 折线图
运行效果如下图: