本文介绍基于Python3.9.7的Pyecharts制作饼图/玫瑰图 /圆环图(pie)时使用的一般参数设置和demo,可根据实际情况对案例中的内容进行调整,获得自己想要的图形样式。详情可参考官方文档--- 使用Pyecharts进行数据可视化时可提供直观、交互丰富、可高度个性化定制的数据可视化图表。案例中的代码内容基于Pyecharts 1.9.1 版本。集成开发环境为Anaconda中自带的jupter-notebook6.4.5,为达到同样效果,建议在使用pyecharts时安装1.9.1版本。 pip install pyecharts==1.9.1一、标准饼图1.运行效果图 2.demo代码from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker
def pie_with_custom_label():
pie = Pie(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
pie.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
#设置标题
pie.set_global_opts(title_opts=opts.TitleOpts(title="标准饼图-自定义颜色及数据标签"),
#设置图例位置
legend_opts=opts.LegendOpts(type_="scroll", pos_left="90%", orient="vertical"),)
#设置每个区域的颜色
pie.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
pie.set_series_opts(
# 自定义数据标签
label_opts=opts.LabelOpts(position='top',
color='red',
font_family='Arial',
font_size=12,
font_style='italic',
interval=1,
formatter='{b}:{d}%'
)
)
return pie
chart = pie_with_custom_label()
chart.render_notebook()二、玫瑰图1.运行效果图 2.demo代码from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
v = Faker.choose()
c = (
Pie()
.add(
"",
[list(z) for z in zip(v, Faker.values())],
radius=["30%", "75%"],
center=["35%", "50%"],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=False),
)
.add(
"",
[list(z) for z in zip(v, Faker.values())],
radius=["30%", "75%"],
center=["75%", "50%"],
rosetype="area",
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),)
#设置数据标签格式
.set_series_opts(
label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#.render("pie_rosetype.html")
)
c.render_notebook()三、圆环图1.运行效果图 2.demo代码from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
Pie()
.add(
"",
[list(z) for z in zip(Faker.choose(), Faker.values())],
radius=["40%", "75%"],
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-Radius"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#.render("pie_radius.html")
)
c.render_notebook()四、复合饼图1.运行效果图 2.demo代码from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.commons.utils import JsCode
fn = """
function(params) {
if(params.name == '其他')
return '\\n\\n\\n' + params.name + ' : ' + params.value + '%';
return params.name + ' : ' + params.value + '%';
}
"""
def new_label_opts():
return opts.LabelOpts(formatter=JsCode(fn), position="center")
c = (
Pie()
.add(
"",
[list(z) for z in zip(["剧情", "其他"], [25, 75])],
center=["20%", "30%"],
radius=[60, 80],
label_opts=new_label_opts(),
)
.add(
"",
[list(z) for z in zip(["奇幻", "其他"], [24, 76])],
center=["55%", "30%"],
radius=[60, 80],
label_opts=new_label_opts(),
)
.add(
"",
[list(z) for z in zip(["爱情", "其他"], [14, 86])],
center=["20%", "70%"],
radius=[60, 80],
label_opts=new_label_opts(),
)
.add(
"",
[list(z) for z in zip(["惊悚", "其他"], [11, 89])],
center=["55%", "70%"],
radius=[60, 80],
label_opts=new_label_opts(),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-多饼图基本示例"),
legend_opts=opts.LegendOpts(
type_="scroll", pos_top="20%", pos_left="80%", orient="vertical"
),
)
#.render("mutiple_pie.html")
)
c.render_notebook()
|