python畫環形圖的方法
阿新 • • 發佈:2020-03-26
本文例項為大家分享了python畫環形圖的具體程式碼,供大家參考,具體內容如下
import os import pandas as pd import matplotlib.pyplot as plt import random import numpy as np # 獲取漸變色的list def gradual(number): colors = [] h = 0.00001 gradual2 = random.uniform(0,1) r = gradual2 if gradual2 >= 0.5: g = h b = gradual2 else: g = gradual2 b = h colors.append((r,g,b,1)) for i in range(number - 1): # 大於0.5 則為綠色漸變,小於則為藍色漸變 if gradual2 >= 0.5: g = 1 if ((1 - h) / number) > 1 else (g + (1 - h) / number) else: b = 1 if ((1 - h) / number) > 1 else (b + (1 - h) / number) colors.append((r,1)) return colors # 獲取綠色的個數,standardRedIndex為要將那個顏色改為紅色 def listGreen(number,standardRedIndex): colors = [] for i in range(number): if i == standardRedIndex - 1: colors.append('r') else: colors.append('#6CAD4F') return colors # 畫環形圖 def circularGraph(outerData,innerData,labels,standardRedIndex): data = pd.DataFrame([outerData,innerData],columns=labels) # 設定字型這樣才可以顯示中文 plt.rcParams['font.sans-serif'] = 'Microsoft YaHei' plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) colors = gradual(len(labels)) # 資料內環 plt.pie(data.iloc[1,:],radius=0.65,wedgeprops=dict(width=0.3,edgecolor='w'),colors=colors) # 資料外環 plt.pie(data.iloc[0,radius=1,colors=listGreen(len(labels),standardRedIndex)) # 獲取ax label ax = plt.subplot(1,1,1) # loc是位置,bbox_to_anchor是位置座標,borderaxespad將圖例放外面 frameon=False去掉圖例邊框 # bbox_to_anchor 的y座標 y = -1 / 40 * len(labels) + 0.5 ax.legend(labels,loc=4,bbox_to_anchor=(1.3,y),borderaxespad=0.,frameon=False) plt.show() circularGraph([30,30,20,40,20],[30,['甲硫桿菌','霍爾德曼氏菌屬','Faecali菌屬','瘤胃菌屬','Faecali菌屬'],3)
更多精彩內容請點選專題: 《python圖片處理操作》
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。