<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
餅圖 常常用來顯示 整體中各部分所佔的比例,在python-matplotlib庫中通過plt.pie()方法來實現。
其主要引數如下:
x --------每一塊餅圖的比例組成的序列。可以是一個列表。如果其中元素的值加起來大於一,則會通過
歸一化處理後的結果。
explode -------- 指每一塊餅距離圓心的距離。預設為0。如果大於0,則餅即會分裂出來,即“分裂餅形圖”效果。
labels -------- 標籤,即每一塊餅圖外側顯示的說明文字
autopct -------- 設定餅圖百分比的格式。即字串的格式,可以使用格式化字串表示式或者format()函數的表示式。 不設定這個引數則不會顯示百分比的字串。
pctdistance --------指百分比的位置刻度,預設為0.6。
shadow --------布林型別,餅圖是否帶陰影(立體感)。預設False不帶。
labeldistance --------標記的繪製的位置,佔半徑長度的比例。預設為1.1,如果大於1則顯示在餅的內側。
startangle --------起始繪製角度,預設從x軸正方向逆時針畫起。例如,設定為90則從y軸正方向畫起。
radius -------- 餅圖的半徑,預設為1。
counterclock -------- 指標方向。布林型別。預設為True,表示逆時針。如果為False則表示順時針。
wedgeprops -------- wedge物件的屬性(wedge翻譯過來即三角木,楔子,即表示餅圖中的每一塊兒),可選引數,字典型別,預設為None。這個字典將會傳遞給wedge物件。如wedgeprops={‘linewidth’:2}表示wedge的線條寬度為2。
textprops -------- text標籤文字的屬性。也是一個字典型別,可選。預設為None。
center -------- 餅圖的原點。
frame -------- 是否顯示軸框架,布林型別,預設不顯示,False。如果為True則會顯示軸框架。可以與grid()配合使用。通常不使用該引數,因為軸框架會干擾影象效果。
rotatelabels -------- 可選,旋轉標籤到指定角度。(“指定”的含義是,以該位置連線圓心的半徑為水平基準。)
繪製一張簡單的餅圖,影象上的百分數顯示出一位小數。標籤為[‘A類’, ‘B類’, ‘C類’, ‘D類’]。
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.rcParams['axes.facecolor'] ='#cc00ff' x = [10, 20, 35, 25] plt.pie(x, autopct='%1.1f%%', labels=['A類', 'B類', 'C類', 'D類']) plt.title("產品數量佔比") plt.show()
影象效果呈現如下:
設定背景顏色為’#00E5EE’,
百分數顯示一位小數,
四塊的顏色依次為[‘red’, ‘green’, ‘purple’, ‘yellow’]
B類 在餅圖中 向外分裂0.2個單位 explode=[0, 0.2, 0, 0],
從y軸正方向開始繪圖 startangle=90,
餅圖半徑設為1.1 radius=1.1,
標籤文字字型的大小為20,顏色為 ‘#8B1A1A’ textprops={‘fontsize’: 20, ‘color’: ‘#8B1A1A’}
顯示陰影效果,
標籤在半徑0.6單位處 pctdistance=0.6,
每個標籤都選擇一定的角度 rotatelabels=True
程式碼如下:
import matplotlib.pyplot as plt fig = plt.figure(1, facecolor='#00E5EE', figsize=(10, 8)) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.rcParams['axes.facecolor'] = '#cc00ff' x = [10, 20, 35, 25] plt.pie(x, labels=['A類', 'B類', 'C類', 'D類'], autopct='%1.1f%%', colors=['red', 'green', 'purple', 'yellow'], explode=[0, 0.2, 0, 0], startangle=90, radius=1.1, textprops={'fontsize': 20, 'color': '#8B1A1A'}, shadow=True, pctdistance=0.6, rotatelabels=True ) # 設定標題文字、y座標(即豎直方向上的位置),字型大小、顏色 plt.title("產品數量佔比", y=1.05, fontsize=25, color='#cc00ff') plt.show()
繪製環形圖仍然使用plt.pie()方法,
只需要設定其中的wedgeprops引數的屬性。
程式碼範例如下
在上例程式碼的基礎上,取消分裂,
新增 wedgeprops={‘width’: 0.4, ‘edgecolor’: ‘k’}。
然後把百分數的位置pctdistance設定為0.8。
import matplotlib.pyplot as plt fig = plt.figure(1, facecolor='#00E5EE', figsize=(10, 8)) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.rcParams['axes.facecolor'] = '#cc00ff' x = [10, 20, 35, 25] plt.pie(x, labels=['A類', 'B類', 'C類', 'D類'], autopct='%1.1f%%', colors=['red', 'green', 'purple', 'yellow'], startangle=90, radius=1.1, textprops={'fontsize': 20, 'color': '#8B1A1A'}, shadow=True, pctdistance=0.8, rotatelabels=True, wedgeprops={'width': 0.4, 'edgecolor': 'k'} ) plt.title("產品數量佔比", y=1.05, fontsize=25, color='#cc00ff') plt.show()
內嵌環形圖,以內嵌一次為例。即兩個圓環,需要呼叫兩次plt.pie()方法。
通過wedgeprops引數設定不同的環形邊界,通過radius設定不同的半徑。
全域性字型為SimHei(黑體)。標題部分的區域性字型使用“華文琥珀”(將系統的字型檔案STHUPO.TTF複製到當前目錄下)。
import matplotlib.pyplot as plt from matplotlib import font_manager fig = plt.figure(1, facecolor='#ffffcc', figsize=(6, 6)) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.rcParams['axes.facecolor'] = '#cc00ff' x1 = [10, 20, 35, 25] x2 = [8, 32, 20, 40] plt.pie(x1, autopct='%1.1f%%', colors=['red', 'green', 'blue', 'yellow'], startangle=90, radius=1, textprops={'fontsize': 16, 'color': 'purple'}, pctdistance=0.85, rotatelabels=True, wedgeprops={'linewidth': 2, 'width': 0.3, 'edgecolor': 'k'} ) plt.pie(x2, autopct='%1.1f%%', colors=['red', 'green', 'blue', 'yellow'], startangle=90, radius=0.7, textprops={'fontsize': 16, 'color': 'purple'}, pctdistance=0.6, rotatelabels=True, wedgeprops={'linewidth': 2, 'width': 0.4, 'edgecolor': 'k'} ) plt.title("產品數量佔比", fontsize=25, color='purple', fontproperties=font_manager.FontProperties(fname='STHUPO.TTF')) plt.legend(['A類', 'B類', 'C類', 'D類'], bbox_to_anchor=(0.9, 0.2)) plt.show()
程式執行效果如下:
到此這篇關於Python利用Matplotlib庫實現繪製餅形圖的文章就介紹到這了,更多相關Python Matplotlib餅圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45