m0_54631596 2022-02-08 20:44 采纳率: 50%
浏览 39
已结题

求会用pyecharts做下面这个图的轮播图

主要问题是数据不会加,可以参考https://gallery.pyecharts.org/#/Pie/nested_pies%E4%BB%A3%E7%A0%81

img

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-02-09 08:37
    关注

    按这个例子改下数据及饼图生成部分即可。

    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")
    
    
    
    
    # 建立TimeLine
    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)])
    
    # 建立TimeLine
    create_timeline_data(data, "nested_pies.html")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月8日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?