數據可視化技術Pyecharts餅圖Pie詳細代碼註釋學習筆記5

餅圖用pyecharts有一個功能比matplotlib便捷一點,就是能夠自動防止標籤疊加,可以在例7瞭解

首先導入通用模塊包
from pyecharts.charts import Page,Pie
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Faker
from pyecharts import options as opts
# 例1 基本示例
pie1=(
    Pie()
    # 餅圖添加數據用一個列表裏遍歷數組方式
    .add("",[list(z)for z in zip(Faker.choose(),Faker.values())])
    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))
# formatter 餅圖、儀表盤、漏斗圖: {a}(系列名稱),{b}(數據項名稱),{c}(數值), {d}(百分比)
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
)
pie1.render('pie.html')

在這裏插入圖片描述

# 例2 網頁標題與背景顏色
pie2=(# init_opts初始化配置,page_title設置網頁標題,bg_color設置畫板背景顏色
    Pie(init_opts=opts.InitOpts(page_title='網頁標題與背景顏色',bg_color='yellow'))
    .add("",[list(z)for z in zip(Faker.choose(),Faker.values())])
    .set_global_opts(title_opts=opts.TitleOpts(title="網頁標題與背景顏色"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
)
pie2.render('pie.html')

在這裏插入圖片描述

# 例3 設置顏色
pie3=(
    Pie()
    .add("",[list(z)for z in zip(Faker.choose(),Faker.values())])
    .set_colors(["black","orange","green","yellow","red","pink","red"])
        # set_colors設置顏色,可以用列表形式
    .set_global_opts(title_opts=opts.TitleOpts(title="設置顏色"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
)
pie3.render('pie.html')

在這裏插入圖片描述

# 例4 調整圓心和圖例位置
pie4 = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(Faker.choose(), Faker.values())],
        center=["65%", "0%"],# 調整餅圖圓心位置,第一個參數水平位置,第2個參數設置垂直位置
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Pie-調整位置"),
        legend_opts=opts.LegendOpts(pos_bottom="0%"),# 圖例調到最底部
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
pie4.render('pie.html')

在這裏插入圖片描述

# 例5 環形圖
pie5=(
    Pie()
    .add(
        "",
        [list(z)for z in zip(Faker.choose(),Faker.values())],
        radius=["100%","10%"],# radius第一個外半徑,第2個參數內半徑
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Pie-Radius"),
        legend_opts=opts.LegendOpts(
            orient="vertical",pos_top="15%",pos_left="2%"
            # orient="vertical"設置圖例垂直
        ),
    )
)
pie5.render('pie.html')

在這裏插入圖片描述

# 例6 玫瑰圖
pie6 = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(Faker.choose(), Faker.values())],
        radius=["30%", "75%"],
        center=["25%", "50%"],
        rosetype="radius",# 設置成玫瑰圖,值只有2種,radius和area
        # radius:扇區圓心角展現數據的百分比,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add(
        "",
        [list(z) for z in zip(Faker.choose(), Faker.values())],
        radius=["30%", "75%"],
        center=["75%", "50%"],
        rosetype="area",# area:所有扇區圓心角相同,半徑展現數據大小
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰圖示例"))
)
pie6.render('pie.html')

在這裏插入圖片描述

# 例7 滾動圖例加多表數據合成
pie7 = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(
                Faker.choose() + Faker.choose() + Faker.choose()+Faker.choose()+ Faker.choose()+Faker.choose(),
                Faker.values() + Faker.values() + Faker.values()+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"
        ),
    )
)
pie7.render('pie.html')

在這裏插入圖片描述

# 例8 多餅圖4餅圖
pie8 = (
    Pie()# 添加餅圖用.add就可以了
    .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(
             pos_top="20%", pos_left="80%", orient="vertical"
        ),
    )
)
pie8.render('pie.html')

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章