运行结果如图显示:
圆环图:
# 1、导入需要用到的图表类和模块
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 2、创建圆环图实例
pie_demo = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
#添加数据
.add("", [('20岁以下', 7.5), ('20-30岁', 29.9), ('31-40岁', 45.9), ('41-50岁', 13.6), ('51岁以上', 3.1)],
center=["50%", "50%"], # 饼图圆心坐标
radius=[100, 160]) # 饼图的半径,第一项是中间缺口的半径,第二项是整个饼图的半径
#设置标题
.set_global_opts(title_opts=opts.TitleOpts(title='中药材消费者画像数据'))
)
# 3、渲染图表
pie_demo.render_notebook()
柱形堆积图:
# 1、导入需要用到的图表类和模块
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
# 2、准备数据
list1 = [
{"value": 20.3, "percent": 20.3 / (20.3 + 79.7)},
{"value": 22.0, "percent": 22.0 / (22.0 + 78.0)},
{"value": 23.5, "percent": 23.5 / (23.5 + 76.5)},
{"value": 22.5, "percent": 22.5 / (22.5 + 77.5)},
{"value": 22.3, "percent": 22.3 / (22.3 + 77.7)},
]
list2 = [
{"value": 79.7, "percent": 79.7 / (20.3 + 79.7)},
{"value": 78.0, "percent": 78.0 / (22.0 + 78.0)},
{"value": 76.5, "percent": 76.5 / (23.5 + 76.5)},
{"value": 77.5, "percent": 77.5 / (22.5 + 77.5)},
{"value": 77.7, "percent": 77.7 / (22.3 + 77.7)},
]
# 3、绘制柱形堆积图实例
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
.add_xaxis([2019, 2020, 2021, 2022, 2023])
.add_yaxis("跨国企业占比",
list1,
stack="stack1",
category_gap="50%")
.add_yaxis("本土企业占比", list2, stack="stack1", category_gap="50%")
.set_series_opts(
label_opts=opts.LabelOpts(
position="right",
rotate=10,
formatter=JsCode(
"function(x){return Number(x.data.percent * 100).toFixed() + '%';}"
),
)
)
.set_global_opts(title_opts=opts.TitleOpts(title='全国药店中药饮片供应商占比情况'))
)
# 4、渲染图表
bar.render_notebook()