【Pyecharts-学习笔记系列之Pie(三)】

【Pyecharts-学习笔记系列之Pie(三)】Pyecharts-学习笔记系列之Pie_Nested_piesimportpyecharts.optionsasoptsfrompyecharts.chartsimportPieinner_x_data=[“直达”,

Pyecharts-学习笔记系列之Pie_Nested_pies

import pyecharts.options as opts
from pyecharts.charts import Pie

inner_x_data = ["直达", "营销广告", "搜索引擎"]
inner_y_data = [335, 679, 1548]
inner_data_pair = [list(z) for z in zip(inner_x_data,inner_y_data)]
print("inner_data_pair = ",inner_data_pair )

outer_x_data = ["直达", "营销广告", "搜索引擎", "邮件营销", "联盟广告", "视频广告", "百度", "谷歌", "必应", "其他"]
outer_y_data = [335, 310, 234, 135, 1048, 251, 147, 102]
outer_data_pair = [list(z) for z in zip(outer_x_data,outer_y_data)]
print("outer_data_pair = ",outer_data_pair )

c = (
    Pie(init_opts=opts.InitOpts(width="1600px",height="800px"))
    .add(
        series_name="访问来源",
        data_pair=inner_data_pair,
        radius=[0,"30%"],    # 饼图的半径,数组的第一项是内半径,第二项是外半径
        label_opts=opts.LabelOpts(position="inside"),  # 标签的位置,inner也可以。在https://pyecharts.org/#/zh-cn/series_options?id=labelopts%ef%bc%9a%e6%a0%87%e7%ad%be%e9%85%8d%e7%bd%ae%e9%a1%b9
        # 中没有inner,outside选项,但是程序识别。
        )
    .add(
        series_name="访问来源",
        data_pair=outer_data_pair,
        radius=["40%","55%"],
        label_opts=opts.LabelOpts(
            position="outside",
            # 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行。
            # 模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。
            # 饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
            formatter="{a|{a}}{abg|}\n{hr|}\n{b|{b}:}{c} {per|{d}%}",  # 使用(|)分隔属性和值。{hr|}之后需要加入换行符,否则分割线在框外{hr|}
            background_color="#eee",  # 标签的统一背景
            border_color="#aaa",
            border_width=1,
            border_radius=20,     # 总的标签的外边框圆角
            # 在rich里面,可以自定义富文本样式。利用富文本样式,可以在标签中做出非常丰富的效果
            # https://echarts.apache.org/handbook/zh/how-to/label/rich-text/#%E6%96%87%E6%9C%AC%E6%A0%B7%E5%BC%8F%E7%9B%B8%E5%85%B3%E7%9A%84%E9%85%8D%E7%BD%AE%E9%A1%B9
            rich={ 
   
                "a":{ 
   "color":"#999","lineHeight":22,"align":"center",
                     },
                "abg":{ 
           # a的背景
                    "backgroundColor":"yellow", # "#e3e3e3"
                    "width":"100%",
                    "align":"right",
                    "height":22,
                    "borderRadius":[4,4,20,20],  # [4,4,0,0] {a}的外边框圆角
                    },
                "hr":{ 
   
                    "borderColor":"#blue",
                    "width":"100%",
                    "borderWidth":0.5,
                    "height":0,
                    },
                "b":{ 
   "fontSize":16,
                     "lineHeight":33,
                     "backgroundColor":"red",
                     },
                "per":{ 
   
                    "color":"#eee",
                    "backgroundColor":"#334455",
                    "padding":[2,4],
                    "borderRadius":5, # {d}的外边框圆角
                    },
                },
            ),
        )
    .set_global_opts(legend_opts=opts.LegendOpts(pos_left="left", # 值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'。
                                                 orient="vertical",# 图例列表的布局朝向。可选:'horizontal', 'vertical'
                                                 )
                     )
    .set_series_opts(
        tooltip_opts=opts.TooltipOpts(
            trigger="item",  # 触发类型。'item': 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。
            formatter="{a}<br>{b}:{c}({d}%)",  # 标签内容格式器 ,均支持用 \n ,<br>换行。
            # 字符串模板 模板变量有:
            # {a}:系列名。
            # {b}:数据名。
            # {c}:数据值。
            # {@xxx}:数据中名为 'xxx' 的维度的值,如 {@product} 表示名为 'product'` 的维度的值。
            # {@[n]}:数据中维度 n 的值,如{@[3]}` 表示维度 3 的值,从 0 开始计数。
            # 示例:formatter: '{b}: {@score}'
            )
        )
    .render("nested_pies.html")
    )

效果如图:
nested_pies如果将rich部分修改,{a}和{abg}合并:

            rich={ 
   
                "a":{ 
   "color":"#999",
                     "lineHeight":22,
                    "backgroundColor":"yellow", # "#e3e3e3"
                    "width":"100%",
                    "align":"center",   #文本在背景色的中间,但是背景色不在统一的边框中间。
                    "height":22,
                    "borderRadius":[4,4,20,20],  # [4,4,0,0] {a}的外边框圆角
                    },
                "hr":{ 
   
                    "borderColor":"#blue",
                    "width":"100%",
                    "borderWidth":0.5,
                    "height":0,
                    },
                "b":{ 
   "fontSize":16,
                     "lineHeight":33,
                     "backgroundColor":"red",
                     },
                "per":{ 
   
                    "color":"#eee",
                    "backgroundColor":"#334455",
                    "padding":[2,4],
                    "borderRadius":5, # {d}的外边框圆角
                    },
                },

系列名的文本在背景色的中间,但是背景色不在统一的边框中间。

效果如图:
nested_pies_2

今天的文章【Pyecharts-学习笔记系列之Pie(三)】分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/62469.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注