python繪制堆疊條形圖介紹

目前在網絡上多是單個條形圖堆疊,沒看到一組的條形圖堆疊。
代碼如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

導入一組自己造的數據

data  = pd.read_excel('data.xlsx')
In [4]: data
Out[4]:

在這裡插入圖片描述

多使用幾個plt.bar()函數,就可以畫出來啦。。。

tick_label = list(data.columns)
tick_label.remove(‘類別')
x = np.arange(len(tick_label))

y1 = data.iloc[2,1:].values.tolist() #收入(剔除自己轉入)
y2 = data.iloc[3,1:].values.tolist() #支出(剔除自己轉入)
y3 = data.iloc[4,1:].values.tolist() #收入(自己轉入)
y4 = data.iloc[5,1:].values.tolist() #支出(自己轉入)
bar_with = 0.25 #柱體寬度plt.figure(figsize = (12,6)) #畫佈大小
plt.bar(x, y1, width = bar_with, #柱體寬度
align = ‘center', #x軸上的坐標與柱體對其的位置
color = ‘orangered', alpha = 0.6, #柱體透明度
label = ‘收入(剔除自己轉入)')
plt.bar(x,y3,width = bar_with, bottom = y1, #柱體基線的y軸坐標
align = ‘center', color = ‘lightsalmon', alpha = 0.6, label = ‘收入(自己轉入)')
plt.bar(x + bar_with, y2, width = bar_with,
align = ‘center', color = ‘deepskyblue', alpha = 0.6, label = ‘支出(剔除自己轉入)')
plt.bar(x + bar_with, y4, width = bar_with, bottom = y2,
align = ‘center', color = ‘lightskyblue', alpha = 0.6, label = ‘支出(自己轉入)')
plt.title(‘月度收支表', fontsize = 10) #設置x軸標題
plt.xticks(x + bar_with/2, tick_label, rotation = 70) #設置x軸坐標
plt.xlabel(‘時間',fontsize = 8, verticalalignment = ‘top', horizontalalignment=‘right',rotation=‘horizontal')
plt.xlabel(‘時間',fontsize = 8, verticalalignment = ‘bottom', horizontalalignment=‘center')

#圖例設在圖形外面,控制坐標參數
plt.legend(loc = ‘center', bbox_to_anchor = (0.77, 1.1), ncol=2)
plt.savefig(‘draw_bar.png', dpi=200, bbox_inches = ‘tight')
plt.close()

繪制如圖:

在這裡插入圖片描述

是不是其實plt繪圖也沒有哪麼辣眼睛瞭。。。

到此這篇關於python繪制堆疊條形圖介紹的文章就介紹到這瞭,更多相關python堆疊條形圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: