日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python高效画饼图

發布時間:2025/4/16 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python高效画饼图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述

幫助朋友來做一個畫餅圖的任務,給了一系列數據,然后畫出餅圖。
理論上來講應該是很快速的,而且這個任務也很簡單。

但是存在一些小的坑,總是需要我查找以前的做的東西,慢慢填上,耗費了一點時間。
這點時間上的耗費,讓我覺得甚至不如直接用excel畫個圖。

為了解決這個時間上的消耗問題,這里我將這些坑都整理了一下,讓以后調用的時候更加方便。

代碼

import matplotlib.pyplot as plt def pie(data, index_map=None, Chinese=False, autopct="%.2f%%", legend=False, legend_loc=None, save_name=None, dpi=None):data = data.value_counts()# 標簽是否映射if index_map:data.index = data.index.map(index_map)# 是否存在中文if Chinese:plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標簽 plt.rcParams['axes.unicode_minus']=False # 用來正常顯示負號# 是否顯示餅內文字if autopct:data.plot.pie(autopct=autopct)else:data.plot.pie()# 是否顯示懸浮框if legend:# 是否設定位置if legend_loc:plt.legend(loc=legend_loc)else:plt.legend()# 是否保存if save_name:if not dpi:dpi=100plt.savefig(save_name, dpi=dpi)

調用實例

df.iloc[:, 1] 表示選取dataframe的第一列的數據,作為輸入。

這個數據就是一系列的標簽,比如label1,label2等等之類的。

而我使用的這個數據的這一列內容是,數字1,2,3等等。

所以,我才需要添加一個新的index_map來映射到日常中用到的具體標簽,而不是某個某個抽象的數字。
當然,如果之前的這一列已經就是我們想要的標簽的話,就直接使用就好了。

參數描述

  • index_map:一個index的映射函數。
  • Chinese:是否用到了中文
  • legend:是否有懸浮框
  • legend_loc:懸浮框的位置
  • save_name:圖片保存的名字 or 路徑
  • dpi:圖片精度
d = ['90分及以上','80-89.5分','79.5分及以下'] pie(df.iloc[:, 1], index_map=lambda x: d[int(x-1)], Chinese=True, legend=True, legend_loc="upper left", save_name="test.png", dpi=200)


legend_loc還有其他的屬性:'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center', 'best'

總結

以上是生活随笔為你收集整理的Python高效画饼图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。