Pyecharts中如何制作玫瑰图
Pyecharts是一个基于Python语言的数据可视化库,可以用于制作各种类型的图表,包括玫瑰图。下面是制作玫瑰图的步骤:
- 导入必要的模块和数据
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.commons.utils import JsCode
data = [("分类1", 55), ("分类2", 20), ("分类3", 10), ("分类4", 20)]
- 创建Pie对象,并设置基本属性
rose = (
Pie()
.add("", data)
.set_colors(["#EED1C4", "#FAD9A4", "#FFC857", "#FF9C5B"])
.set_global_opts(
title_opts=opts.TitleOpts(title="玫瑰图示例"),
legend_opts=opts.LegendOpts(
type_="scroll", pos_left="80%", orient="vertical"
),
toolbox_opts=opts.ToolboxOpts(),
)
.set_series_opts(
label_opts=opts.LabelOpts(
formatter="{b}: {d}%",
font_size=16,
font_weight="bold",
position="center",
),
# 设置玫瑰图的半径范围,即饼图的半径范围
radius=["20%", "70%"],
)
)
- 对数据进行处理,添加角度信息,并设置玫瑰图的特效
rose_data = []
for i in range(len(data)):
# 将数据项转换为键值对的形式
rose_data.append({"name": data[i][0], "value": data[i][1]})
# 计算每个数据项对应的角度范围
start_angle = i * 360 / len(data)
end_angle = (i + 1) * 360 / len(data)
# 设置玫瑰图的特效,即使得每个数据项对应的扇形区域呈现出一定的动态效果
rose.set_series_opts(
label_opts=opts.LabelOpts(
formatter="{b}: {d}%",
font_size=16,
font_weight="bold",
position="center",
),
# 使用JsCode函数,添加JavaScript脚本,使得扇形区域呈现出动态效果
itemstyle_opts=opts.ItemStyleOpts(
border_width=2,
border_color="white",
shadow_color="rgba(0, 0, 0, 0.5)",
shadow_blur=10,
shadow_offset_x=8,
shadow_offset_y=8,
opacity=0.8,
color=JsCode(
"""
function(params) {
var start = %s;
var end = %s;
var angle = params.angle;
if (angle >= start && angle <= end) {
return new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
offset: 0,
color: params.color
}, {
offset: 1,
color: echarts.color.lighten(params.color)
}])
}
else {
return params.color
}
}
"""
% (start_angle, end_angle)
),
),
)
- 渲染图表,并展示
rose.set_series_opts(data=rose_data)
rose.render_notebook()
以上就是制作玫瑰图的完整步骤。根据具体需求,可以对图表的属性进行调整,如修改颜色、字体、边框等
原文地址: https://www.cveoy.top/t/topic/fscl 著作权归作者所有。请勿转载和采集!