1. 程式人生 > 程式設計 >python畫環形圖的方法

python畫環形圖的方法

本文例項為大家分享了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畫環形圖的方法

更多精彩內容請點選專題: 《python圖片處理操作》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。