Python可視化神器pyecharts繪制餅狀圖

 更新時間:2022年07月05日 16:55:55   作者:王小王_123???????  
這篇文章主要介紹了Python可視化神器pyecharts繪制餅狀圖,餅圖是用圓形及圓內扇形的角度來表示數值大小的圖形,它主要用于表示一個樣本中各組成部分的數據占全部數據的比例

餅圖

概念

餅圖(pie chart)是用圓形及圓內扇形的角度來表示數值大小的圖形,它主要用于表示一個樣本(或總體)中各組成部分的數據占全部數據的比例。僅排列在工作表的一列或一行中的數據可以繪制到餅圖中。餅圖顯示一個數據系列 (數據系列:在圖表中繪制的相關數據點,這些數據源自數據表的行或列。圖表中的每個數據系列具有唯一的顏色或圖案并且在圖表的圖例中表示??梢栽趫D表中繪制一個或多個數據系列。餅圖只有一個數據系列。)中各項的大小與各項總和的比例。

用法

  • 1、僅有一個要繪制的數據系列
  • 2、要繪制的數值沒有負值
  • 3、要繪制的數值幾乎沒有零值
  • 4、類別數目無限制
  • 5、各類別分別代表整個餅圖的一部分
  • 6、各個部分需要標注百分比(也可以不需要,注明數量也可)

優勢

能夠直觀的反映出每個數據類別的大體占比,便于我們快速的得出結論。

餅狀圖系列模板

簡單多色餅狀圖(類別可配色)

選用大量的數據集,可以進行對類別的配色,直觀的反映每一個類別的占比情況,非常好看。

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
Pie()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])#可更改
.set_colors(["blue", "green", "cyan", "red", "pink", "orange", "purple"])#顏色可添加
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-標題"))
.set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
.render("簡單多餅狀圖.html")
)
print([list(z) for z in zip(Faker.choose(), Faker.values())])#數據格式參考

象形餅狀圖

把鼠標放在上面,可以顯示占比情況也就是百分數的多少,直觀通過參數構造完全可以解決。

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])

(
Pie(init_opts=opts.InitOpts(width="1600px", height="800px", 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/>: {c} ({d}%)"
),
label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"),
)
.render("象形圖.html")
)

環形餅狀圖

出現一個環,里面展示出數據標簽和數據量以及數據百分比的情況,一般不會用到。

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
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|: }{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="標題"))
.render("環形餅狀圖.html")
)

不調色餅狀圖(大小位置可控制)

前面我們有一個可以自己調色的餅狀圖,但是有時候你沒有藝術的靈感,設計不出具有魅力的圖形,就可以使用這個。

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
Pie()
.add(
"",
[list(z) for z in zip(Faker.choose(), Faker.values())],
center=["35%", "50%"],
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-調整位置"),
legend_opts=opts.LegendOpts(pos_left="15%"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
.render("不調色餅狀圖.html")
)

數據類別大量顯示柱狀圖

針對數據類別有很多的情況我們選用此模板,把數據標簽放在右側。

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
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="標題"),
legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
.render("數據標簽大量顯示.html")
)
print([
list(z)
for z in zip(
Faker.choose() + Faker.choose() + Faker.choose(),#數據類別
Faker.values() + Faker.values() + Faker.values(),#數據量
)
])

多餅狀圖同時顯示

適合做多個餅狀圖的同時展示,大量的也可以,增加配置即可。

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")
c = (
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="標題"),
legend_opts=opts.LegendOpts(
type_="scroll", pos_top="20%", pos_left="80%", orient="vertical"
),
)
.render("多餅圖展示.html")
)

玫瑰餅狀圖雙圖顯示

可添加多個,這里只展示一個:

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
v = Faker.choose()
c = (
Pie()
.add(
"",
[list(z) for z in zip(v, Faker.values())],
radius=["30%", "75%"],
center=["50%", "50%"],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=False),
)
# .add(
# "",
# [list(z) for z in zip(v, Faker.values())],
# radius=["30%", "75%"],
# center=["75%", "60%"],
# rosetype="area",
# )
.set_global_opts(title_opts=opts.TitleOpts(title="標題"))
.render("玫瑰餅狀圖.html")
)

環形餅狀圖(數據標簽左放)

適合多個數據,數據標簽左放不會重疊

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
Pie()
.add(
"",
[list(z) for z in zip(Faker.choose(), Faker.values())],
radius=["40%", "75%"],
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-Radius"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
.render("數據左放餅狀圖.html")
)

餅狀圖就介紹到這了,我相信這些模板已經足夠了,可視化玩轉不僅僅是圖形了,還有炫酷喲!下期文章我們探索K線圖,統計學里面(經濟)耳熟能詳了。

到此這篇關于Python可視化神器pyecharts繪制餅狀圖的文章就介紹到這了,更多相關Python pyecharts繪制餅狀圖內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python鼠標事件及坐標獲取窗口和屏幕坐標

    Python鼠標事件及坐標獲取窗口和屏幕坐標

    這篇文章主要介紹了Python編程中如何通過鼠標事件及坐標獲取窗口坐標和屏幕坐標的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python正則表達式常用函數總結

    Python正則表達式常用函數總結

    這篇文章主要介紹了Python正則表達式常用函數,結合實例形式總結分析了Python正則表達式常用函數功能、使用方法及相關注意事項,需要的朋友可以參考下
    2017-06-06
  • python jenkins 打包構建代碼的示例代碼

    python jenkins 打包構建代碼的示例代碼

    這篇文章主要介紹了python jenkins 打包構建代碼的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Python格式化輸出的具體實現

    Python格式化輸出的具體實現

    本文主要介紹了Python格式化輸出的具體實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • py3nvml實現GPU相關信息讀取的案例分析

    py3nvml實現GPU相關信息讀取的案例分析

    這篇文章主要介紹了py3nvml實現GPU相關信息讀取,此時就可以考慮使用py3nvml這樣的工具,針對于GPU任務執行的過程進行細化的分析,有助于提升GPU的利用率和程序執行的性能,需要的朋友可以參考下
    2022-01-01
  • python 下載m3u8視頻的示例代碼

    python 下載m3u8視頻的示例代碼

    這篇文章主要介紹了python 下載m3u8視頻的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • python實現一個簡單的并查集的示例代碼

    python實現一個簡單的并查集的示例代碼

    本篇文章主要介紹了python實現一個簡單的并查集的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 教你使用Pandas直接核算Excel中的快遞費用

    教你使用Pandas直接核算Excel中的快遞費用

    文中仔細說明了怎么根據賬單核算運費.首先要確定運費規則,然后根據運費規則編寫代碼,生成核算列(快遞費 = 省份*重量),最后輸入賬單,進行核算.將腳本件生成EXE文件,就可以使用啦,需要的朋友可以參考下
    2021-05-05
  • Python可迭代對象操作示例

    Python可迭代對象操作示例

    這篇文章主要介紹了Python可迭代對象操作,涉及Python列表生成式、迭代器、數據遍歷等相關操作技巧,需要的朋友可以參考下
    2019-05-05
  • 在django中form的label和verbose name的區別說明

    在django中form的label和verbose name的區別說明

    這篇文章主要介紹了在django中form的label和verbose name的區別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論

美丽人妻被按摩中出中文字幕