最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python通過(guò)matplotlib畫(huà)雙層餅圖及環(huán)形圖簡(jiǎn)單示例

 更新時(shí)間:2017年12月15日 08:47:26   作者:周永  
這篇文章主要介紹了Python通過(guò)matplotlib畫(huà)雙層餅圖及環(huán)形圖簡(jiǎn)單示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。

(1)

餅圖(pie),即在一個(gè)圓圈內(nèi)分成幾塊,顯示不同數(shù)據(jù)系列的占比大小,這也是我們?cè)谌粘?shù)據(jù)的圖形展示中最常用的圖形之一。

在python中常用matplotlib的pie來(lái)繪制,基本命令如下所示(python3.X版本):

vals = [1, 2, 3, 4]#創(chuàng)建數(shù)據(jù)系列
fig, ax = plt.subplots()#創(chuàng)建子圖
labels = 'A', 'B', 'C', 'D'
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0, 0.1, 0, 0)
ax.pie(vals, explode=explode, labels=labels, colors=colors,
 autopct='%1.1f%%', shadow=True, startangle=90,radius=1.2)
ax.set(aspect="equal", title='Pie plot with `ax.pie`')#設(shè)置標(biāo)題以及圖形的對(duì)稱
plt.show()

上圖是在對(duì)餅圖的模塊顏色、標(biāo)簽、百分比、標(biāo)題、角度、圓形半徑,以及某一塊凸出(explode)進(jìn)行設(shè)置后,最終呈現(xiàn)的圖形效果。大部分設(shè)置來(lái)自于pie()函數(shù)內(nèi),即:

pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6,
shadow=False, labeldistance=1.1, startangle=None, radius=None)

對(duì)于該函數(shù)內(nèi)各參數(shù)的含義,網(wǎng)上資料比比皆是,在這里不再贅述,大家可以根據(jù)自己需求來(lái)多次嘗試,設(shè)置美化圖形。

(2)

目前matplotlib中尚無(wú)雙層餅圖繪制的專門(mén)介紹,但是,我們注意到pie()函數(shù)中有個(gè)餅圖半徑的設(shè)置——radius,于是,我就想:可不可以在同一個(gè)figure下繪制兩個(gè)不同的圓餅,形成嵌套餅圖,從而制作出雙層餅圖?比如:

作圖如下:

vals1 = [1, 2, 3, 4]
vals2 = [2, 3, 4, 5]
fig, ax = plt.subplots()
labels = 'A', 'B', 'C', 'D'
ax.pie(vals1, radius=1.2)
ax.pie(vals2, radius=1)
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
plt.show()

初戰(zhàn)告捷!令我信心大增!
因此,在matplotlib下繪制雙層餅圖的方法可以總結(jié)為:基于不同的數(shù)據(jù)系列,分別設(shè)計(jì)兩個(gè)餅圖,嵌套在一起,對(duì)每個(gè)餅圖的pie()函數(shù)內(nèi)參數(shù)radius進(jìn)行設(shè)置,就可以得到雙層餅圖。

(3)

但是,可以看到上面的那個(gè)圖形還有點(diǎn)粗糙,還可以加入百分比、color等等,進(jìn)一步設(shè)置:

vals1 = [1, 2, 3, 4]
vals2 = [2, 3, 4, 5]
fig, ax = plt.subplots()
labels = 'A', 'B', 'C', 'D'
ax.pie(vals1, radius=1.2,autopct='%1.1f%%',pctdistance=0.9)
ax.pie(vals2, radius=1,autopct='%1.2f%%',pctdistance=0.5)
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
#plt.legend()
plt.legend(labels,bbox_to_anchor=(1.05, 1), loc='best', borderaxespad=0.)
plt.show()

為方便,在這里沒(méi)有對(duì)顏色、角度進(jìn)行參數(shù)設(shè)置,后期若大家有興趣,可以進(jìn)一步加入不同參數(shù)再次設(shè)置。在這里主要說(shuō)明的是:

1、圖中各餅塊的百分比數(shù)據(jù),也在各自餅圖中對(duì)pctdistance(百分比離圓形距離)進(jìn)行不同設(shè)置,以便區(qū)分開(kāi),這里邊也經(jīng)過(guò)多次嘗試;

2、對(duì)于各餅塊顏色代表的數(shù)據(jù)系列標(biāo)簽,采用圖例的方式plt.legend(),放在右邊,不然餅圖中展示的文本內(nèi)容過(guò)多,會(huì)影響圖形效果;

3、legend()的圖例的位置可以通過(guò)關(guān)鍵字參數(shù) loc 指定,bbox_to_anchor 關(guān)鍵字可讓用戶手動(dòng)控制圖例布局。 例如,如果你希望軸域圖例位于圖像的右上角而不是軸域的邊角,則只需指定角的位置以及該位置的坐標(biāo)系。

(4)

進(jìn)一步地,在雙層餅圖的基礎(chǔ)上,我又在想:可不可以繪制雙層環(huán)形圖。

在這里也就是轉(zhuǎn)換一下思路:在兩個(gè)餅圖里邊再加個(gè)小圓形圖,并設(shè)置成白色背景。經(jīng)過(guò)嘗試,結(jié)果也如我所愿:

vals1 = [1, 2, 3, 4]
vals2 = [2, 3, 4, 5]
vals3=[1]
fig, ax = plt.subplots()
labels = 'A', 'B', 'C', 'D'
ax.pie(vals1, radius=1.2,autopct='%1.1f%%',pctdistance=0.9)
ax.pie(vals2, radius=1,autopct='%1.1f%%',pctdistance=0.75)
ax.pie(vals3, radius=0.6,colors='w')
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
#plt.legend()
plt.legend(labels,bbox_to_anchor=(1, 1), loc='best', borderaxespad=0.)
plt.show()

其原理為:繪制三個(gè)嵌套餅圖,其中最里邊的餅圖,設(shè)置半徑較小,整個(gè)餅圖只有一個(gè)變量,因此不會(huì)分割,同時(shí)將背景色設(shè)置成白色colors='w',如此,大功告成!

實(shí)際上,還可以進(jìn)一步延伸,繪制多層餅圖、多層環(huán)形圖,其原理都是繪制半徑不同的pie,并設(shè)置不同的參數(shù)。

總結(jié)

以上就是本文關(guān)于Python通過(guò)matplotlib畫(huà)雙層餅圖及環(huán)形圖簡(jiǎn)單示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 基于python實(shí)現(xiàn)KNN分類(lèi)算法

    基于python實(shí)現(xiàn)KNN分類(lèi)算法

    這篇文章主要為大家詳細(xì)介紹了基于python實(shí)現(xiàn)KNN分類(lèi)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python多核處理器算力浪費(fèi)問(wèn)題解決

    python多核處理器算力浪費(fèi)問(wèn)題解決

    這篇文章主要為大家介紹了python多核處理器算力浪費(fèi)現(xiàn)象的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python Tkinter實(shí)例——模擬擲骰子

    Python Tkinter實(shí)例——模擬擲骰子

    這篇文章主要介紹了Python利用tkinter模塊模擬擲骰子的實(shí)例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • Python實(shí)現(xiàn)PC屏幕截圖并自動(dòng)發(fā)送郵箱

    Python實(shí)現(xiàn)PC屏幕截圖并自動(dòng)發(fā)送郵箱

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)一個(gè)屏幕截圖應(yīng)用程序,可以定時(shí)截取屏幕,并將截圖通過(guò)電子郵件發(fā)送給指定的收件人,需要的可以參考下
    2024-12-12
  • Python安裝xarray庫(kù)讀取.nc文件的詳細(xì)步驟

    Python安裝xarray庫(kù)讀取.nc文件的詳細(xì)步驟

    大家應(yīng)該都知道庫(kù)xarray可以幫我們讀取出nc文件的內(nèi)容,所以下面這篇文章主要給大家介紹了關(guān)于Python安裝xarray讀取.nc文件的詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 淺談python的上下文管理器with的用法

    淺談python的上下文管理器with的用法

    這篇文章主要介紹了淺談python的上下文管理器with的用法,在一段代碼執(zhí)行前, 先執(zhí)行__enter__中的代碼用于預(yù)處理,然后執(zhí)行 with 中間的代碼,最后執(zhí)行完這段代碼之后再執(zhí)行 exit 中的代碼進(jìn)行清理工作,需要的朋友可以參考下
    2023-07-07
  • 如何用Python生成二維碼、解析二維碼

    如何用Python生成二維碼、解析二維碼

    這篇文章主要介紹了如何用Python生成二維碼、解析二維碼,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Django Rest Framework構(gòu)建API的實(shí)現(xiàn)示例

    Django Rest Framework構(gòu)建API的實(shí)現(xiàn)示例

    本文主要介紹了Django Rest Framework構(gòu)建API的實(shí)現(xiàn)示例,包含環(huán)境設(shè)置、數(shù)據(jù)序列化、視圖與路由配置、安全性和權(quán)限設(shè)置、以及測(cè)試和文檔生成這幾個(gè)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Python命名空間詳解

    Python命名空間詳解

    這篇文章主要介紹了Python命名空間詳解,非常重要的概念,需要的朋友可以參考下
    2014-08-08
  • Python中__init__.py文件的作用

    Python中__init__.py文件的作用

    這篇文章主要介紹了Python中__init__.py文件的作用,在PyCharm中,帶有__init__.py這個(gè)文件的目錄被認(rèn)為是Python的包目錄,與普通目錄的圖標(biāo)有不一樣的顯示
    2022-09-09

最新評(píng)論

溧阳市| 荣昌县| 乃东县| 治县。| 康定县| 武隆县| 石门县| 孟州市| 梁山县| 龙川县| 洪江市| 宿州市| 诸城市| 西安市| 浦北县| 闸北区| 阿拉尔市| 建湖县| 阿拉善左旗| 朔州市| 景东| 类乌齐县| 喀什市| 萨嘎县| 沁阳市| 厦门市| 贵德县| 樟树市| 清徐县| 浦县| 江源县| 合阳县| 霸州市| 惠安县| 紫阳县| 福海县| 徐水县| 武清区| 安顺市| 红河县| 陆良县|