學習筆記(47):零基礎搞定Python數據分析與挖掘-多個圖形的組合

立即學習:https://edu.csdn.net/course/play/6861/326792?utm_source=blogtoedu

組合圖的繪製

工作中往往會根據業務的需要,將繪製的多個圖形組合到一個大圖框呢,形成類似儀表板的效果

 

plt.subplot2grid(shape,loc,rowspan,colspan=1,**kwagrs)

shape:指定組合圖的框架形狀,以元組形式傳遞,如2x3的矩陣可以表示成(2,3)

loc:指定子圖所在的位置,如shape中第一行第一列可以表示爲(0,0)

rowspan:指定某個子圖需要跨幾行

colspan:指定某個子圖需要跨幾列

 

 

可視化常用的包

matplotlib

seaborn

pyecharts

# 讀取數據
Prod_Trade = pd.read_excel(r'E:\pylean\database\第8章 數據可視化\Prod_Trade.xlsx')
# 衍生出交易年份和月份字段
Prod_Trade['year'] = Prod_Trade.Date.dt.year
Prod_Trade['month'] = Prod_Trade.Date.dt.month

# 設置大圖框的長和高
plt.figure(figsize = (12,6))
# 設置第一個子圖的佈局
ax1 = plt.subplot2grid(shape = (2,3), loc = (0,0))
# 統計2012年各訂單等級的數量
Class_Counts = Prod_Trade.Order_Class[Prod_Trade.year == 2012].value_counts()
Class_Percent = Class_Counts/Class_Counts.sum()
# 將餅圖設置爲圓形(否則有點像橢圓)
ax1.set_aspect(aspect = 'equal')
# 繪製訂單等級餅圖
ax1.pie(x = Class_Percent.values, labels = Class_Percent.index, autopct = '%.1f%%')
# 添加標題
ax1.set_title('各等級訂單比例')

# 設置第二個子圖的佈局
ax2 = plt.subplot2grid(shape = (2,3), loc = (0,1))
# 統計2012年每月銷售額
Month_Sales = Prod_Trade[Prod_Trade.year == 2012].groupby(by = 'month').aggregate({'Sales':np.sum})
# 繪製銷售額趨勢圖
Month_Sales.plot(title = '2012年各月銷售趨勢', ax = ax2, legend = False)
# 刪除x軸標籤
ax2.set_xlabel('')

# 設置第三個子圖的佈局
ax3 = plt.subplot2grid(shape = (2,3), loc = (0,2), rowspan = 2)
# 繪製各運輸方式的成本箱線圖
sns.boxplot(x = 'Transport', y = 'Trans_Cost', data = Prod_Trade, ax = ax3)
# 添加標題
ax3.set_title('各運輸方式成本分佈')
# 刪除x軸標籤
ax3.set_xlabel('')
# 修改y軸標籤
ax3.set_ylabel('運輸成本')

# 設置第四個子圖的佈局
ax4 = plt.subplot2grid(shape = (2,3), loc = (1,0), colspan = 2)
# 2012年客單價分佈直方圖
sns.distplot(Prod_Trade.Sales[Prod_Trade.year == 2012], bins = 40, norm_hist = True, ax = ax4, hist_kws = {'color':'steelblue'}, kde_kws=({'linestyle':'--', 'color':'red'}))
# 添加標題
ax4.set_title('2012年客單價分佈圖')
# 修改x軸標籤
ax4.set_xlabel('銷售額')

# 調整子圖之間的水平間距和高度間距
plt.subplots_adjust(hspace=0.6, wspace=0.3)
# 圖形顯示
plt.show()

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章