按这个例子改下数据及饼图生成部分即可。
用pyecharts 实现按时间线轮播数据饼图_预则立-CSDN博客
上次做了一个轮播柱状图的例子现在做一个饼图的例子 , 例子代码基于 pyecharts 1.7 ,如果是高版本, 要改对应的函数。Python 3.7.3pyecharts Version: 1.7.1完成后,大概就长这个样子上代码 , pie_base 是建一个pie 对象。 create_timeline_data是建立一个轮播图。 # encoding: utf-8"""@author: 陈年椰子@contact: hndm@qq.co...
https://blog.csdn.net/seakingx/article/details/122470088
from pyecharts.charts import Pie, Timeline
from pyecharts import options as opts
from random import randint
def make_Pie(inner_x_data,inner_y_data,outer_x_data,outer_y_data,pie_title):
inner_data_pair = [list(z) for z in zip(inner_x_data, inner_y_data)]
outer_data_pair = [list(z) for z in zip(outer_x_data, outer_y_data)]
chart_Pie = Pie(init_opts=opts.InitOpts(width="1600px", height="800px"))
chart_Pie.add(
series_name="访问来源",
data_pair=inner_data_pair,
radius=[0, "30%"],
label_opts=opts.LabelOpts(position="inner"),
)
chart_Pie.add(
series_name="访问来源",
data_pair=inner_data_pair,
radius=[0, "30%"],
label_opts=opts.LabelOpts(position="inner"),
)
chart_Pie.add(
series_name="访问来源",
radius=["40%", "55%"],
data_pair=outer_data_pair,
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,
},
},
),
)
chart_Pie.set_global_opts(legend_opts=opts.LegendOpts(pos_left="left", orient="vertical"))
chart_Pie.set_global_opts(title_opts=opts.TitleOpts(title=pie_title))
chart_Pie.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
)
)
return chart_Pie
# chart_Pie.render("nested_pies.html")
def create_timeline_data(val_data, html_file):
tl = Timeline()
for data in val_data:
pie_item = make_Pie(data[0], data[1], data[2], data[3], data[4])
tl.add(pie_item, "{}".format(data[4]))
tl.render(html_file)
inner_x_data = ["直达", "营销广告", "搜索引擎"]
outer_x_data = ["直达", "营销广告", "搜索引擎", "邮件营销", "联盟广告", "视频广告", "百度", "谷歌", "必应", "其他"]
data = []
for i in range(5):
inner_y_data = [randint(400, 2000) for n in range(len(inner_x_data))]
outer_y_data = [randint(100,500) for n in range(len(outer_x_data))]
data.append([inner_x_data,inner_y_data, outer_x_data, outer_y_data,'饼图{}'.format(i + 1)])
create_timeline_data(data, "nested_pies.html")