精华内容
下载资源
问答
  • Pyecharts饼图(Pie)
    千次阅读
    2020-04-03 22:03:19

    Pyecharts之饼图(Pie)

    from snapshot_selenium import snapshot as driver
    
    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from pyecharts.render import make_snapshot
    
    from pyecharts.globals import CurrentConfig,NotebookType
    
    CurrentConfig.NOTEBOOK_TYPE=NotebookType.JUPYTER_LAB
    

    一.基本概念

    class pyecharts.charts.Pie

    class Pie(
        # 初始化配置项,参考 `global_options.InitOpts`
        init_opts: opts.InitOpts = opts.InitOpts()
    )
    

    func pyecharts.charts.Pie.add

    def add(
        # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        series_name: str,
    
        # 系列数据项,格式为 [(key1, value1), (key2, value2)]
        data_pair: Sequence,
    
        # 系列 label 颜色
        color: Optional[str] = None,
    
        # 饼图的半径,数组的第一项是内半径,第二项是外半径
        # 默认设置成百分比,相对于容器高宽中较小的一项的一半
        radius: Optional[Sequence] = None,
    
        # 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标
        # 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
        center: Optional[Sequence] = None,
    
        # 是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。
        # radius:扇区圆心角展现数据的百分比,半径展现数据的大小
        # area:所有扇区圆心角相同,仅通过半径展现数据大小
        rosetype: Optional[str] = None,
    
        # 饼图的扇区是否是顺时针排布。
        is_clockwise: bool = True,
    
        # 标签配置项,参考 `series_options.LabelOpts`
        label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
    
        # 提示框组件配置项,参考 `series_options.TooltipOpts`
        tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
    
        # 图元样式配置项,参考 `series_options.ItemStyleOpts`
        itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
    
        # 可以定义 data 的哪个维度被编码成什么。
        encode: types.Union[types.JSFunc, dict, None] = None,
    )
    

    二.代码示例

    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from pyecharts.faker import Faker
    
    p = (
        Pie()
        .add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
        .set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
        .set_global_opts(title_opts=opts.TitleOpts(title="Pie-设置颜色"))
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
        #.render("pie_set_color.html")
    )
    
    #make_snapshot(driver,g.render("gauge.html"),"gauge.png")
    
    p.load_javascript()
    p.render_notebook()
    
    import pyecharts.options as opts
    from pyecharts.charts import Pie
    
    x_data = ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"]
    y_data = [335, 310, 274, 235, 400]
    data_pair = [list(z) for z in zip(x_data, y_data)]
    data_pair.sort(key=lambda x: x[1])
    
    p=(
        Pie(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#2c343c"))
        .add(
            series_name="访问来源",
            data_pair=data_pair,
            rosetype="radius",
            radius="55%",
            center=["50%", "50%"],
            label_opts=opts.LabelOpts(is_show=False, position="center"),
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="Customized Pie",
                pos_left="center",
                pos_top="20",
                title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
            ),
            legend_opts=opts.LegendOpts(is_show=False),
        )
        .set_series_opts(
            tooltip_opts=opts.TooltipOpts(
                trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
            ),
            label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"),
        )
        #.render("customized_pie.html")
    )
    
    #make_snapshot(driver,g.render("gauge.html"),"gauge.png")
    
    p.load_javascript()
    p.render_notebook()
    
    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from pyecharts.faker import Faker
    
    p = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(Faker.choose(), Faker.values())],
            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="Pie-富文本示例"),
                         #legend_opts=opts.LegendOpts(type_="scroll",pos_left="80%",orient="vertical")
        )
        #.render("pie_rich_label.html")
    )
    
    #make_snapshot(driver,g.render("gauge.html"),"gauge.png")
    
    p.load_javascript()
    p.render_notebook()
    
    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from pyecharts.faker import Faker
    
    p = (
        Pie()
        .add(
            "",
            [
                list(z)
                for z in zip(
                    Faker.choose() + Faker.choose() + Faker.choose(),
                    Faker.values() + Faker.values() + Faker.values(),
                )
            ],
            center=["40%", "50%"],
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Pie-Legend 滚动"),
            legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
        )
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
        #.render("pie_scroll_legend.html")
    )
    #make_snapshot(driver,g.render("gauge.html"),"gauge.png")
    
    p.load_javascript()
    p.render_notebook()
    
    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from pyecharts.commons.utils import JsCode
    
    
    fn = """
        function(params) {
            if(params.name == '其他')
                return '\\n\\n\\n' + params.name + ' : ' + params.value + '%';
            return params.name + ' : ' + params.value + '%';
        }
        """
    
    
    def new_label_opts():
        return opts.LabelOpts(formatter=JsCode(fn), position="center")
    
    
    p = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(["剧情", "其他"], [25, 75])],
            center=["20%", "30%"],
            radius=[60, 80],
            label_opts=new_label_opts(),
        )
        .add(
            "",
            [list(z) for z in zip(["奇幻", "其他"], [24, 76])],
            center=["55%", "30%"],
            radius=[60, 80],
            label_opts=new_label_opts(),
        )
        .add(
            "",
            [list(z) for z in zip(["爱情", "其他"], [14, 86])],
            center=["20%", "70%"],
            radius=[60, 80],
            label_opts=new_label_opts(),
        )
        .add(
            "",
            [list(z) for z in zip(["惊悚", "其他"], [11, 89])],
            center=["55%", "70%"],
            radius=[60, 80],
            label_opts=new_label_opts(),
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Pie-多饼图基本示例"),
            legend_opts=opts.LegendOpts(
                type_="scroll", pos_top="20%", pos_left="80%", orient="vertical"
            ),
        )
        #.render("mutiple_pie.html")
    )
    
    p.load_javascript()
    p.render_notebook()
    

    三.示例演示

    数据具体处理过程链接:去哪儿

    1.数据处理与获取

    import pandas as pd
    
    data=pd.read_csv("travel2.csv")
    
    import re
    
    def Look(e):
        
        if '万' in e:
            num=re.findall('(.*?)万',e)
            return float(num[0])*10000
        else:
            return float(e)
        
    data['浏览次数']=data['浏览量'].apply(Look)
    data.drop(['浏览量'],axis=1,inplace=True)
    data['浏览次数']=data['浏览次数'].astype(int)
    
    data1=data.head(7)
    data.head(7)
    
    地点短评出发时间天数人均费用人物玩法浏览次数
    0婺源春天的婺源,油菜花开,宛如一幅诗情画意的水墨画/2020/04/0153000三五好友第一次 美食9055
    1阿联酋阿联酋|小狮妹和父母的新年迪拜之旅/2019/12/108---3860
    2AguadePau来自《一个女生的古巴独行记》(11日自由行攻略)/2019/09/271120000独自一人深度游 美食 摄影 国庆261
    3建水云南│我什么也没忘,但有些事只适合收藏/2019/10/1084000三五好友穷游 摄影 古镇 赏秋 国庆6176
    4日本日本|东京の72小时/2019/09/218---12000
    5海宁海洪宁静,盐潮入官,百里钱塘,春暖花开--驾“浙”观大潮访金庸、赏樱花睡房车/2020/03/232900情侣自驾 赏樱 踏春 清明22000
    6敦煌甘青│到远方去,到那个山野苍茫的远方,熟悉的地方没有景色/2019/05/10103500三五好友环游 毕业游 穷游14000
    datas=[list(z) for z in zip(data1["地点"].tolist(),data1["浏览次数"].tolist())]
    datas.sort(key=lambda x:x[1])
    datas
    
    [['AguadePau', 261],
     ['阿联酋', 3860],
     ['建水', 6176],
     ['婺源', 9055],
     ['日本', 12000],
     ['敦煌', 14000],
     ['海宁', 22000]]
    

    2.展示

    import pyecharts.options as opts
    from pyecharts.charts import Pie
    
    p=(
        Pie(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#2c343c"))
        .add(
            series_name="旅游浏览",
            data_pair=datas,
            rosetype="radius",
            radius="55%",
            center=["50%", "50%"],
            label_opts=opts.LabelOpts(is_show=False, position="center"),
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="旅游 Pie",
                pos_left="center",
                pos_top="20",
                title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
            ),
            legend_opts=opts.LegendOpts(is_show=False),
        )
        .set_series_opts(
            tooltip_opts=opts.TooltipOpts(
                trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
            ),
            label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"),
        )
        #.render("customized_pie.html")
    )
    
    #make_snapshot(driver,g.render("gauge.html"),"gauge.png")
    
    p.load_javascript()
    p.render_notebook()
    
    
    
    
    
    更多相关内容
  • 利用 Pyecharts 制作饼图

    千次阅读 2020-03-04 23:36:27
    利用 Pyecharts 制作饼图: from pyecharts import options as opts from pyecharts.charts import Pie from random import randint def pie_base() -> Pie: c = ( Pie() .add("", [list(z) for z ...

    利用 Pyecharts 制作饼图:

    from pyecharts import options as opts
    from pyecharts.charts import Pie
    from random import randint
    
    def pie_base() -> Pie:
        c = (
            Pie()
            .add("", [list(z) for z in zip(['宝马','法拉利','奔驰','奥迪','大众','丰田','特斯拉'],
                                           [randint(1, 20) for _ in range(7)])])
            .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))
            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
        )
        return c
    
    pie_base().render('G:/PythonWorkSpace/MatplotlibNumpyPandas/pie_pyecharts.html')
    

    在这里插入图片描述

    展开全文
  • 惊叹,Pyecharts绘制饼图原来可以如此漂亮!

    千次阅读 多人点赞 2020-12-13 10:00:00
    来源:Python数据之道作者:Peter整理:Lemon利用Pyecharts玩转饼图饼图在实际的可视化要求中是非常常见的,它能够很好显示个体的占比或者数据情况。本文中讲解的是如何利用...

    来源:Python数据之道

    作者:Peter

    整理:Lemon

    利用Pyecharts玩转饼图

    饼图在实际的可视化要求中是非常常见的,它能够很好显示个体的占比或者数据情况。本文中讲解的是如何利用 pyecharts 来绘制各种满足不同需求的饼图,包含:

    • 基础饼图+改变饼图位置颜色

    • 环状饼图

    • 内嵌饼图

    • 多饼图

    • 玫瑰图


    开始之前,先来看看部分效果:

    注:文末提供本文的源码获取方式,供大家练习

    导入库

    本文中使用的还是 pandas+pyecharts 组合,在jupyter notebook 中进行绘图。首先导入所需要的各种库:

    基础饼图

    模拟数据

    我们自行模拟了一份消费数据,包含5个消费项目:住宿+餐饮+交通+服装+红包,具体数据如下:

    # 生成数据
    df = pd.DataFrame({"消费":["住宿","餐饮","交通","服装","红包"],
                       "数据":[2580,1300,500,900,1300]
                      })
    df
    

    将消费和数据中的具体数据转成列表形式:

    绘图

    代码的具体解释见注释:

    c = (
        Pie()
        .add("", [list(z) for z in zip(x_data, y_data)])   # zip函数两个部分组合在一起list(zip(x,y))-----> [(x,y)]
        .set_global_opts(title_opts=opts.TitleOpts(title="Pie-月度开支"))  # 标题
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 数据标签设置
    )
    
    c.render_notebook()  
    

    改变位置和颜色

    上面生成的饼图是使用 pyecharts 自带的颜色和位置,有时候我们需要做下改变:

    现在我们生成的饼图如下显示:

    • 颜色变成了我们设置的颜色

    • 位置更靠左了

    视频效果如下:

    改变图例位置

    数据生成

    上面的图例是水平方向排列的,而且个数比较少。如果我们的图例比较多,需要改成竖直方向,同时实现翻页滚动功能。

    在这里我们使用的是 pyecharts 中自带的数据:

    1、Faker.choose() :是用来生成数据标签,有3种不同的取值情况

    2、Faker.values() 是用来生成具体的数据,随机生成

    绘图

    还是通过上面的绘图方法,加入数据同时添加各种配置项:

    视频效果如下:

    环状饼图

    环状饼图主要是通过 add 方法中的 radius 参数来实现的。实现过程如下:

    x_data = ["小明", "小红", "张三", "李四", "王五"]
    y_data = [335, 310, 234, 135, 548]
    
    c = (
        Pie(init_opts=opts.InitOpts(width="1600px", height="1000px"))   # 图形的大小设置
        .add(
            series_name="访问来源",
            data_pair=[list(z) for z in zip(x_data, y_data)],
            radius=["15%", "50%"],   # 饼图内圈和外圈的大小比例
            center=["30%", "40%"],   # 饼图的位置:左边距和上边距
            label_opts=opts.LabelOpts(is_show=True),   # 显示数据和百分比  
        )
        .set_global_opts(legend_opts=opts.LegendOpts(pos_left="left", orient="vertical"))   # 图例在左边和垂直显示
        .set_series_opts(
            tooltip_opts=opts.TooltipOpts(
                trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
            ),
        )
    
    c.render_notebook()
    

    可以看到图形的中间是空的

    内嵌饼图

    内嵌饼图是指将两个甚至多个环状饼图放在一起,实现代码过程如下:

    import pyecharts.options as opts
    from pyecharts.charts import Pie
    from pyecharts.globals import ThemeType
    
    # 内部饼图
    inner_x_data = ["直达", "营销广告", "搜索引擎","产品"]
    inner_y_data = [335, 679, 548, 283]
    inner_data_pair = [list(z) for z in zip(inner_x_data, inner_y_data)]
    # [['直达', 335], ['营销广告', 679], ['搜索引擎', 1548], [‘产品’, 283]]
    
    # 外部环形(嵌套)
    outer_x_data = ["搜索引擎", "邮件营销", "直达", "营销广告", "联盟广告", "视频广告", "产品", "百度", "谷歌","邮件营销", "联盟广告"]
    outer_y_data = [335, 135, 147, 102, 220, 310, 234, 135, 648, 251]
    outer_data_pair = [list(z) for z in zip(outer_x_data, outer_y_data)]
    
    c = (
         # 初始化
        Pie(init_opts=opts.InitOpts(
            width="900px",  # 设置图形大小
            height="800px",
            theme=ThemeType.SHINE))  # 选择主题
    
        # 内部饼图
        .add(
            series_name="版本3.2.1",  # 图形名称
            center=["50%", "35%"],  # 饼图位置
            data_pair=inner_data_pair,  # 系列数据项,格式为 [(key1, value1), (key2, value2)]
            radius=["25%", "40%"],  # 饼图半径 数组的第一项是内半径,第二项是外半径
            label_opts=opts.LabelOpts(position='inner'), # 标签设置在内部
        )
    
        # 外部嵌套环形图
        .add(
            series_name="版本3.2.9",  # 系列名称
            center=["50%", "35%"],  # 饼图位置
            radius=["40%", "60%"],  # 饼图半径 数组的第一项是内半径,第二项是外半径
            data_pair=outer_data_pair, # 系列数据项,格式为 [(key1, value1), (key2, value2)]
    
            # 标签配置项 
            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(
            xaxis_opts = opts.AxisOpts(is_show = False),   #隐藏X轴刻度
            yaxis_opts = opts.AxisOpts(is_show = False),    #隐藏Y轴刻度
            legend_opts = opts.LegendOpts(is_show = True),  #隐藏图例
            title_opts = opts.TitleOpts(title = None),    #隐藏标题
                        )
    
        # 系统配置项
        .set_series_opts(
            tooltip_opts=opts.TooltipOpts(
                trigger="item",
                formatter="{a} <br/>{b}: {c} ({d}%)"
            ),
            label_opts=opts.LabelOpts(is_show=True)  # 隐藏每个触角标签
        )
    )
    
    c.render_notebook()
    
    视频效果如下:

    多饼图

    有时候我们需要将多个图形放在一个大画布中,需要用到子图的制作。

    在下面的代码中每个 add() 都是一个图形的绘制,我们绘制了4个饼图;同时center指定每个图形的位置,radius指定每个饼图内外圈的大小

    c = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(["剧情", "其他"], [30, 70])],
            center=["20%", "30%"],  # 位置
            radius=[60, 80],   # 每个饼图内外圈的大小
        )
        .add(
            "",
            [list(z) for z in zip(["奇幻", "其他"], [40, 60])],
            center=["55%", "30%"],
            radius=[60, 80],
        )
        .add(
            "",
            [list(z) for z in zip(["爱情", "其他"], [24, 76])],
            center=["20%", "70%"],
            radius=[60, 80],
        )
        .add(
            "",
            [list(z) for z in zip(["惊悚", "其他"], [11, 89])],
            center=["55%", "70%"],
            radius=[60, 80],
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Pie-多饼图基本示例"),
            legend_opts=opts.LegendOpts(
                type_="scroll", pos_top="20%", pos_left="80%", orient="vertical"
            ),
        )
    )
    
    c.render_notebook()
    
    视频效果如下:

    玫瑰图

    玫瑰图中每个部分的大小和粗细都是不同的

    v = Faker.choose()
    c = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(v, Faker.values())],   # 两个值
            radius=["30%", "60%"],  # 大小
            center=["25%", "50%"],  # 位置
            rosetype="radius",   
            label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据
        )
        .add(
            "",
            [list(z) for z in zip(v, Faker.values())],
            radius=["30%", "60%"],
            center=["75%", "50%"],
            rosetype="area",
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))
    )
    
    c.render_notebook()
    
    视频效果如下:

    作者简介

    Peter,硕士毕业僧一枚,从电子专业自学Python入门数据行业,擅长数据分析及可视化。喜欢数据,坚持跑步,热爱阅读,乐观生活。个人格言:不浮于世,不负于己

    个人站点:www.renpeter.cn,欢迎常来小屋逛逛


    本文来自公众号读者投稿,欢迎各位童鞋向公号投稿,点击下面图片了解详情!

    源码文件获取

    为方便大家练习,已将整理好的源代码(jupyter notebook文件)分享给各位同学,大家可以在下面的公众号 「柠檬数据」 回复 pie2020 来获取。

    展开全文
  • python中pyecharts绘制饼图

    万次阅读 2019-02-12 16:30:09
    pyecharts包绘制饼图需要调用Pie from pyecharts import Pie Pie.add()方法签名: add(name, attr, value, radius=None, center=None, rosetype=None, **kwargs) name -> str 图例名称 attr -> ...

    pyecharts包绘制饼图需要调用Pie

    from pyecharts import Pie

    Pie.add()方法签名:

    add(name, attr, value,
        radius=None,
        center=None,
        rosetype=None, **kwargs)
    • name -> str
      图例名称
    • attr -> list
      属性名称
    • value -> list
      属性所对应的值
    • radius -> list
      饼图的半径,数组的第一项是内半径,第二项是外半径,默认为 [0, 75]
      默认设置成百分比,相对于容器高宽中较小的一项的一半
    • center -> list
      饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标,默认为 [50, 50]
      默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
    • rosetype -> str
      是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。默认为'radius'
      • radius:扇区圆心角展现数据的百分比,半径展现数据的大小
      • area:所有扇区圆心角相同,仅通过半径展现数据大小

    1,基本饼图:

    from pyecharts import Pie
    
    
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [11, 12, 13, 10, 10, 10]
    pie = Pie("饼图示例")
    pie.add(
        "",
        attr,
        v1,
        is_label_show=True,
        is_more_utils=True
    )
    pie.render(path="Bing1.html")

    结果Bing1.html

    2,环状饼图示例:

    from pyecharts import Pie
    
    
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [11, 12, 13, 10, 10, 10]
    pie = Pie("饼图-圆环图示例", title_pos='center')
    pie.add(
        "",
        attr,
        v1,
        radius=[40, 75],
        label_text_color=None,
        is_label_show=True,
        is_more_utils=True,
        legend_orient="vertical",
        legend_pos="left",
    )
    pie.render(path="Bing2.html")

     结果Bing2.html

    3, 饼图和玫瑰图示例:

    from pyecharts import Pie
    
    
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [11, 12, 13, 10, 10, 10]
    v2 = [19, 21, 32, 20, 20, 33]
    pie = Pie("饼图-玫瑰图示例", title_pos='center', width=900)
    pie.add(
        "商品A",
        attr,
        v1,
        center=[25, 50],
        is_random=True,
        radius=[30, 75],
        rosetype="radius",
        is_label_show=True,
    )
    pie.add(
        "商品B",
        attr,
        v2,
        center=[75, 50],
        is_random=True,
        radius=[30, 75],
        rosetype="area",
        is_legend_show=False,
        is_label_show=True,
        # is_more_utils=True,
    )
    pie.render(path="Bing3.html")

    结果Bing3.html

    4,多个饼图示例:

    from pyecharts import Pie
    from pyecharts import Style
    # 否则会遇到错误NameError: name 'Style' is not defined
    
    pie = Pie('各类电影中"好片"所占的比例', "数据来着豆瓣", title_pos='center')
    style = Style()
    pie_style = style.add(
        label_pos="center",
        is_label_show=True,
        label_text_color=None
    )
    
    pie.add(
        "", ["剧情", ""], [25, 75], center=[10, 30], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["奇幻", ""], [24, 76], center=[30, 30], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["爱情", ""], [14, 86], center=[50, 30], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["惊悚", ""], [11, 89], center=[70, 30], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["冒险", ""], [27, 73], center=[90, 30], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["动作", ""], [15, 85], center=[10, 70], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["喜剧", ""], [54, 46], center=[30, 70], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["科幻", ""], [26, 74], center=[50, 70], radius=[18, 24], **pie_style
    )
    pie.add(
        "", ["悬疑", ""], [25, 75], center=[70, 70], radius=[18, 24], **pie_style
    )
    pie.add(
        "",
        ["犯罪", ""],
        [28, 72],
        center=[90, 70],
        radius=[18, 24],
        legend_top="center",
        **pie_style
    )
    pie.render(path="Bing4.html")

    结果Bing4.html 

    第一个【剧情】的legend位置比较突出,单独一行,如何才能都放在一行??

    参考:

    http://pyecharts.org/#/zh-cn/charts_base?id=pie%EF%BC%88%E9%A5%BC%E5%9B%BE%EF%BC%89

    https://cloud.tencent.com/developer/article/1330784

    展开全文
  • from pyecharts import Pie f = open('pies.json', encoding='gbk') data = json.load(f) print(data) name = data['name'] sales = data['sales'] sales_volume = data['sales_volume'] print(name, sales, sales_...
  • python简单使用pyecharts库画多饼图

    千次阅读 2020-11-10 17:44:38
    from pyecharts.options.global_options import TitleOpts from collections import namedtuple import json import sys import zipfile import os from collections import defaultdict import matplotlib as mpl ...
  • python pyecharts pie饼图反应比例关系

    千次阅读 2019-01-09 17:21:40
    from pyecharts import Pie,Bar,Gauge,EffectScatter,WordCloud import random attr=["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子",] v1=[11,...
  • 用Python-pyecharts绘制饼图和环形图某网站用户感兴趣的领域的投票结果绘制饼图、环形图;数据文件:vote_result.csvcsv数据内容:饼图:#导入数据import pandas as pdimport csvf=open('E:/可视化/matplotlib/vote_...
  • pyecharts-饼图

    千次阅读 2019-05-23 10:46:19
    如果直接from pyecharts import Bar,会发现报错TypeError: 'module' object is not callable,这是因为...绘制饼图 from pyecharts import options as opts from pyecharts.charts import Page, Pie data = {...
  • pyecharts 饼图绘制

    2021-11-03 13:34:24
    关于饼图的绘制基本的饼图环形图玫瑰饼图 基本的饼图 import pandas as pd import numpy as np from pyecharts.charts import * import pyecharts.options as opts #数据 cate = ['Apple', 'Huawei', 'Xiaomi', '...
  • pyecharts绘制饼图 直接上代码: from pyecharts import Pie #导包 attr = ["内裤","内衣","毛衣","牛仔裤","袜子","鞋子"] v1 = [10,20,30,40,50,60...
  • # TODO 从pyecharts.charts中导入Pie from pyecharts.charts import Pie # TODO 从pyecharts导入options,简称为opts from pyecharts import options as opts # 按照批评者、被动者和推荐者的顺序以元组的格式组成...
  • 如上图所示,在一个图表中包含饼图,不同于组合图表,这里虽然是饼图,但饼图都是用同一个标题,配色,图例等等,除了位置不一样,其他全局配置都是一致的。 完整示例 完整代码 #!/usr/bin/env python #...
  • Pyecharts基本图:饼图

    千次阅读 2021-06-02 19:34:27
    文章目录前言一. Pie 饼图1.1 Pie 类1.2...本文主要是展示了Pyecharts饼图的简单应用和案例。 一. Pie 饼图 1.1 Pie 类 # class pyecharts.charts.Pie class Pie( # 初始化配置项,参考 `global_options.InitOpts` i
  • from pyecharts.charts import Bar bar = Bar() bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) bar.render()# render
  • Pyecharts 饼图位置调整

    千次阅读 2019-12-30 22:38:21
    如果要把 pyecharts 里的饼图嵌入其他页面,有的时候需要调整饼图的位置。 不调整可能会显示成这样: 调整后的效果是这样: 关键代码在于: center=["40%", "60%"] def pie_base_proc(p_dict, p_list) ...
  • 用python实现PyEcharts中的折线图 笔记仅是个人的学习笔记总结,如有雷同请见谅 1. Pie class pyecharts.charts.Pie class Pie( # 初始化配置项,参考 `global_options.InitOpts` init_opts: opts.InitOpts = ...
  • pyecharts饼图pie制作

    千次阅读 2021-11-17 10:24:56
    from pyecharts.charts import Pie from pyecharts import options 从excel中读取数据: df5 = pd.read_excel("abc.xlsx") 接下来将读取的数据存入符合的变量中 def pleattr_graph(): list_pie = [] for i...
  • Pyecharts简单使用 饼图和环形图

    千次阅读 2021-04-16 15:38:04
    参考官方文档:https://pyecharts.org/#/zh-cn/intro
  • 来源:Python数据之道作者:Peter整理:Lemon利用Pyecharts玩转饼图饼图在实际的可视化要求中是非常常见的,它能够很好显示个体的占比或者数据情况。本文中讲解的是如何利...
  • 一、利用matplotlib绘制饼图1、导入模块:import matplotlib.pyplot as pltimport pandas as pdimport matplotlib2、设置数据:data = pd.Series([95,261,105,30,9],index =["五星","四星","三星","二星","一星"])...
  • 工作中遇到一个问题,要给饼图每一个图都设置一个标题,寻找一天才得以解决,如下图所示:我在pyecharts官方文档中没有查询到设置标题的api,但是在echarts中有这方面的设置, 其中,echarts如果设置标题代码如下 ...
  • 绘制的饼图效果是这样的: 没有安装PyEcharts的,先安装PyEcharts: 安装好PyEcharts之后,就可以将需要使用的模块进行导入: 先定义或导入数据: 然后将数据处理成PyEcharts所要求的格式: 接下来就
  • pyecharts 饼图

    2021-04-02 13:05:14
    from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Faker#伪数据 pie = Pie() pie.add("这个系列的名称",[list(z) for z in zip(Faker.choose(), Faker.values...
  • 如上图所示,Pyecharts饼图可以支持配置饼图的内半径和外半径,通过参数radius进行配置,如radius=["40%", "75%"]表示为内半径缩小为默认半径的40%,外半径缩小为默认半径的75%。 完整示例 完整代码 #!/usr/bin/...
  • 一、利用matplotlib绘制饼图 1、导入模块: import matplotlib.pyplot as plt import pandas as pd import matplotlib 2、设置数据: data = pd.Series([95,261,105,30,9],index =["五星","四星","三星","二星","一...
  • 饼图常用于表现不同类别的占比情况。使用Pie方法可以绘制饼图

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,211
精华内容 1,284
关键字:

pyecharts多饼图