饼图英文学名为Sector Graph,又名Pie Graph。常用于统计学模块。2D饼图为圆形,手画时,常用圆规作图。
仅排列在工作表的一列或一行中的数据可以绘制到饼图中。饼图显示一个数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)中各项的大小与各项总和的比例。饼图中的数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列。)显示为整个饼图的百分比。(来自百度百科)
pyechart官网(示例在最后):
class pyecharts.charts.Pie:
class Pie(
# 初始化配置项,参考 `global_options.InitOpts`
init_opts: opts.InitOpts = opts.InitOpts()
)
func pyecharts.charts.Pie.add:
def add(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据项,格式为 [(key1, value1), (key2, value2)]
data_pair: types.Sequence[types.Union[types.Sequence, opts.PieItem, dict]],
# 系列 label 颜色
color: Optional[str] = None,
# 饼图的半径,数组的第一项是内半径,第二项是外半径
# 默认设置成百分比,相对于容器高宽中较小的一项的一半
radius: Optional[Sequence] = None,
# 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标
# 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
center: Optional[Sequence] = None,
# 是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。
# radius:扇区圆心角展现数据的百分比,半径展现数据的大小
# area:所有扇区圆心角相同,仅通过半径展现数据大小
rosetype: Optional[str] = None,
# 饼图的扇区是否是顺时针排布。
is_clockwise: bool = True,
# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
# 可以定义 data 的哪个维度被编码成什么。
encode: types.Union[types.JSFunc, dict, None] = None,
)
饼图数据项:
class PieItem(
# 数据项名称。
name: Optional[str] = None,
# 数据值。
value: Optional[Numeric] = None,
# 该数据项是否被选中。
is_selected: bool = False,
# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[LabelOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[TooltipOpts, dict, None] = None,
)
PieLabelLineOpts: 饼图标签的视觉引导线样式:
class PieLabelLineOpts(
# 是否显示视觉引导线。
is_show: bool = True,
# 视觉引导线第一段的长度。
length: Numeric = None,
# 视觉引导项第二段的长度。
length_2: Numeric = None,
# 是否平滑视觉引导线,默认不平滑,可以设置成 true 平滑显示。
# 也可以设置为 0 到 1 的值,表示平滑程度。
smooth: Union[bool, Numeric] = False,
# 线条样式,参考 `LineStyleOpts`
linestyle_opts: Union[LineStyleOpts, dict, None] = None,
)
示例一:
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
#Faker.choose()创建虚拟数据
c = (
Pie()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-设置颜色"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
.render("pie_set_color.html")#保存在网页中
)
结果:

颜色不太好看,附上一张颜色表可供修改:

示例二(富文本示例):
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%", "55%"],
label_opts=opts.LabelOpts(
position="outside",
formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c} {per|{d}%} ",
background_color="#eee",
border_color="#aaa",
border_width=1,
border_radius=4,
rich={
"a": {"color": "#999", "lineHeight": 22, "align": "center"},
"abg": {
"backgroundColor": "#e3e3e3",
"width": "100%",
"align": "right",
"height": 22,
"borderRadius": [4, 4, 0, 0],
},
"hr": {
"borderColor": "#aaa",
"width": "100%",
"borderWidth": 0.5,
"height": 0,
},
"b": {"fontSize": 16, "lineHeight": 33},
"per": {
"color": "#eee",
"backgroundColor": "#334455",
"padding": [2, 4],
"borderRadius": 2,
},
},
),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-富文本示例"))
.render("pie_rich_label.html")
)
结果:

就酱,更多的示例和方法可以查看官网:Pyecharts
本文介绍了Pyechart库中饼图的使用,包括如何创建2D饼图来展示数据比例,以及饼图数据项的详细设置。通过示例展示了饼图标签的视觉引导线样式配置,并提供了颜色修改建议。此外,还提到了富文本在饼图中的应用。要了解更多内容,可参考Pyechart官方文档。
 饼图、富文本&spm=1001.2101.3001.5002&articleId=119207724&d=1&t=3&u=3f12148f1b7f41d39f317d85a97c33a1)
1万+

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



