資料分析實戰--對比分析
本文主要講的是對比分析的一些視覺化作圖,用來練練matplotlib不錯。主要內容有:兩個相互聯絡的指標的比較(絕對比較)、相對比較兩方面。
0 模組匯入
import numpy as np
import pandas as pd
import matplotlib。pyplot as plt
plt。rcParams[‘font。sans-serif’]=[‘SimHei’] #用來正常顯示中文標籤
plt。rcParams[‘axes。unicode_minus’]=False #用來正常顯示負號
1。對比分析 → 兩個互相聯絡的指標進行比較(絕對比較)
建立資料 → 30天內A/B產品的日銷售額
data = pd。DataFrame(np。random。rand(30,2)*1000,
columns=[‘A_sale’,‘B_sale’],
index = pd。period_range(‘20170601’,‘20170630’)
)
fig,ax = plt。subplots(4,1,figsize=(10,15))
plt。subplots_adjust(hspace=0。5)
(1)折線圖比較 AB產品銷量對比圖-折線圖
data。plot(kind = ‘line’,
style=‘——’,
alpha = 0。8,
title = ‘AB產品銷量對比圖-折線圖’,
ax = ax[0])
2、相對數比較 → 相除(相對)
(2)多系列柱狀圖比較 AB產品銷量對比-柱狀圖
data。plot(kind = ‘bar’,
alpha = 0。8,
width = 0。8,
title = ‘AB產品銷量對比-柱狀圖’,
ax=ax[1])
(3)絕對數比較,相減 AB產品銷量對比-堆疊圖
data1 = data。copy()
data1[‘B_sale’] = -data[‘B_sale’]
data1[‘A_sale’]。plot(kind = ‘bar’,
color = ‘g’,
alpha = 0。4,
title = ‘AB產品銷量對比-堆疊圖’,
ax=ax[2])
data1[‘B_sale’]。plot(kind = ‘bar’,
color = ‘b’,
alpha = 0。4,
title = ‘AB產品銷量對比-堆疊圖’,
ax=ax[2])
(4)面積圖
data。plot。area(alpha = 0。5,
title = ‘AB產品銷量對比-面積’,
ax = ax[3])
2、相對數比較 → 相除(相對比較)
建立資料 → 30天內A/B產品的日銷售額
A/B產品銷售額量級不同
data = pd。DataFrame({‘A_sale’:np。random。rand(30)*1000,
‘B_sale’:np。random。rand(30)*200},
index = pd。period_range(‘20170601’,‘20170630’))
(1) 計算出每天的營收佔比
data[‘A_per’] = data[‘A_sale’]/data[‘A_sale’]。sum()
data[‘B_per’] = data[‘B_sale’]/data[‘B_sale’]。sum()
(2)轉換為百分數
data[‘A_per%’] = data[‘A_per’]。apply(lambda x:‘%。2f%%’%(x*100))
data[‘B_per%’] = data[‘B_per’]。apply(lambda x:‘%。2f%%’%(x*100))
(3)每日A、B產品營收——折線圖
fig,ax = plt。subplots(2,1,figsize=(10,10))
plt。subplots_adjust(hspace = 0。5)
x = range(len(data))
data[‘A_sale’]。plot(kind=‘line’,
style=‘——go’,
ax = ax[0],
color = ‘b’,
title = ‘A、B產品營收——折線圖’)
data[‘B_sale’]。plot(kind=‘line’,
style=‘——go’,
color = ‘g’,
ax = ax[0],
title = ‘A、B產品營收——折線圖’)
ax[0]。legend(labels = [‘A_sale’,‘B_sale’],loc=‘best’)
(4)每日A、B產品營收佔比——折線圖
data[‘A_per’]。plot(kind=‘line’,
style=‘——go’,
ax = ax[1],
color = ‘b’,
title = ‘A、B產品營收佔比——折線圖’)
data[‘B_per’]。plot(kind=‘line’,
style=‘——go’,
color = ‘g’,
ax = ax[1],
title = ‘A、B產品營收佔比——折線圖’)
ax[1]。legend(labels = [‘A_per’,‘B_per’],loc=‘best’)
3 相對數比較 → 相除
建立資料 → 某人一年內的消費、工資薪水情況
消費按照2000-3000/月隨機,工資按照5000-5500/月隨機
data = pd。DataFrame({‘A’:np。random。rand(30)*5000,
‘B’:np。random。rand(30)*2000,
‘C’:np。random。rand(30)*10000,
‘D’:np。random。rand(30)*800},
index = pd。period_range(‘20170601’,‘20170630’))
(1)透過柱狀圖做橫向比較 → 4個產品的銷售額總量
fig,ax = plt。subplots(2,1,figsize=(10,10))
plt。subplots_adjust(hspace=0。5)
data。sum()。plot(kind=‘bar’,
width = 0。8,
alpha = 0。4,
rot = 0,
title = ‘4個產品的銷售額總量’,
ax = ax[0])
(2)多系列柱狀圖,橫向比較前十天4個產品的銷售額
data。iloc[:10,:]。plot(kind = ‘bar’,
title = ‘前十天4個產品的銷售額’,
ax = ax[1])
關注二維碼相互交流哦!