数据概览:
在开始绘图之前,让我们先看一下我们将要可视化的数据:
中药材消费者画像数据
年龄 | 占比(%) |
20岁以下 | 2.2 |
20-30岁 | 27.9 |
31-40岁 | 56.2 |
41-50岁 | 10.9 |
51岁以上 | 2.8 |
可视化实现:
在这个案例中,我们有五个年龄组别,以及每个年龄组别所占的百分比。这些数据存储在一个列表中,即age_data。接下来,我们将使用pyecharts库来绘制饼形图。
# 导入pyecharts库中的options和Pie类
from pyecharts import options as opts
from pyecharts.charts import Pie
这部分代码是导入 pyecharts 库中的 options 和 Pie 类,用于后续创建饼图和设置图表样式。
# 定义数据,每个年龄组别以及占比
age_data = [("20岁以下", 2.2), ("20-30岁", 27.9), ("31-40岁", 56.2), ("41-50岁", 10.9), ("51岁以上", 2.8)]
在这里,定义了一个包含年龄组别和对应占比的数据列表。
# 创建Pie对象,并通过add()向图表中添加数据
c = (
Pie() # 创建饼形图对象
.add( # 添加数据
"", # 图例名称为空
age_data, # 数据源
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="中药材消费者画像数据"))
# 将图表渲染到HTML文件中
.render("02.html")
)
这部分代码是核心部分,首先创建了一个 Pie 对象,然后使用 add() 方法向饼图中添加数据。在这个过程中,指定了饼图的内外半径、标签的位置和样式等。接着,使用 set_global_opts() 方法设置了全局的标题参数,最后调用 render() 方法将图表渲染为 HTML 文件。
以下是完整的代码实现:
# 导入pyecharts库中的options和Pie类
from pyecharts import options as opts
from pyecharts.charts import Pie
# 定义数据,每个年龄组别以及占比
age_data = [("20岁以下", 2.2), ("20-30岁", 27.9), ("31-40岁", 56.2), ("41-50岁", 10.9), ("51岁以上", 2.8)]
# 创建Pie对象,并通过add()向图表中添加数据
c = (
Pie() # 创建饼形图对象
.add( # 添加数据
"", # 图例名称为空
age_data, # 数据源
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="中药材消费者画像数据"))
# 将图表渲染到HTML文件中
.render("02.html")
)
通过这个例子,我们可以看到,使用Python的pyecharts库绘制饼形图非常简单。只需要准备好数据,创建一个饼形图对象,并设置样式即可。对于初学者来说,可以通过这个例子来快速学习如何使用pyecharts库绘制饼形图。