1. 程式人生 > 其它 >資料視覺化分析

資料視覺化分析

一,資料描述

1,資料解釋

  • 汽車款式:車輛的品牌,型號
  • 汽車售價:車輛實際的成交價
  • 汽車原價: 車輛官方指導價
  • 行駛里程:車輛目前行駛的里程數
  • 保險到期:車輛所購買的保險到期時間
  • 上牌時間:車輛上牌的時間
  • 車身級別:車輛所處的車輛型別,大致分為轎車,SUV,細分有多種
  • 顏色:汽車發動機使用的燃油標號,分為95號,92號,98號
  • 汽車所在地:汽車上牌時登記的地區
  • 差價:汽車原價-汽車售價
  • 售價/原價:汽車售價/汽車原價

2,匯入資料

import pandas as pd
data = pd.read_csv('D:/二手車之家的所有汽車原始資料.csv')

二,資料清洗

data = data.drop('
Unnamed: 0', axis=1) data = data[data['汽車售價/萬'] < 100] # 清洗少數售價 > 100 data = data[data['汽車原價/萬'] < 200] # 清洗少數原價 > 200 data = data[(data['售/原'] * 0.01).index()] data = data.drop(index=(data.loc[(data['售/原'] / 100)].index)) # 清洗異常資料'[]' data = data.drop(index=(data.loc[(data['顏色']=='[]')].index)) #
清洗異常資料'[]' data = data.drop(index=(data.loc[(data['上牌時間'] =='未上牌')].index)) # 清洗異常資料'[]'

三,資料分析及視覺化

3.1 汽車售價簇狀分佈圖

fig , ax = plt.subplots(1,1, figsize=(16, 8))
ax.set_title("汽車售價/萬", fontsize=25, color = 'red')  # 子圖示題
ax.hist(data['汽車售價/萬'],bins = 20)
plt.ylabel("汽車數量", fontsize=20, color = '
blue') #設定X軸Y軸名稱 ,字型大小,顏色 plt.xlabel("汽車售價", fontsize=20, color = 'blue') plt.tick_params(labelsize=20) # 刻度字型大小 labels = ax.get_xticklabels() + ax.get_yticklabels() [label.set_fontname('Times New Roman') for label in labels] ax.xaxis.set_major_locator(MultipleLocator(5)) # x軸刻度值之家的差 ax.yaxis.set_major_locator(MultipleLocator(500)) # y軸刻度值之家的差

從上圖可以看出:

  汽車銷量最高的可以達到6000萬,5萬到10萬的車輛數目佔比最大,基本上越便宜的車數量越多。

3.2汽車原價簇狀分佈圖

fig , ax = plt.subplots(1,1, figsize=(16, 8))
ax.set_title("汽車原價/萬", fontsize=25, color = 'red')  # 子圖示題
ax.hist(data['汽車原價/萬'],bins = 20)
plt.ylabel("汽車數量", fontsize=20, color = 'blue') #設定X軸Y軸名稱 ,字型大小,顏色
plt.xlabel("汽車原價", fontsize=20, color = 'blue') 
plt.ylim(0,6500)  #設定Y軸上下限 
plt.tick_params(labelsize=13)  # 刻度字型大小
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Times New Roman') for label in labels]
ax.xaxis.set_major_locator(MultipleLocator(5))  # x軸刻度值之家的差
ax.yaxis.set_major_locator(MultipleLocator(500))  # y軸刻度值之家的差

3.3汽車所在地–汽車數量簇狀分佈圖

fig , ax = plt.subplots(1,1, figsize=(16, 8))
ax.set_title("汽車所在地", fontsize=25, color = 'red')  # 子圖示題
ax.hist(data['汽車所在地'],bins = 22)
plt.ylabel("汽車數量", fontsize=20, color = 'blue') #設定X軸Y軸名稱 ,字型大小,顏色
plt.xlabel("汽車所在地", fontsize=20, color = 'blue') 
ax.yaxis.set_major_locator(MultipleLocator(200))  # y軸刻度值之家的差

從上圖可以看出:

  汽車銷量最多的城市是東莞和深圳,汽車銷量最少的城市是中山和揭陽。

3.4車身級別–汽車數量簇狀分佈圖

# 車身級別數量圖
fig , ax = plt.subplots(1,1, figsize=(16, 8))
# fig.suptitle("原價與售價對比",fontsize=20,x=0.5,y=0.95)  #  總圖示題
ax.set_title("車身級別", fontsize=25, color = 'red')  # 子圖示題
ax.hist(data['車身級別'],bins = 24)
plt.ylabel("汽車數量", fontsize=20, color = 'blue') #設定X軸Y軸名稱 ,字型大小,顏色
plt.xlabel("車身級別", fontsize=20, color = 'blue') 

從上圖分析可知:

  最受歡迎的車輛是緊湊型車和中型車,最不受歡迎的是跑車和小型SUV

4,線性迴歸模型與評估模型相關性

from sklearn.linear_model import LinearRegression
X = data['駕駛行程/萬公里'].values.reshape(-1,1)
y = data['售/原'].values.reshape(-1,1)
reg = LinearRegression()
reg.fit(X, y)
print("The linear model is: Y = {:.5} + {:.5}X".format(reg.intercept_[0], reg.coef_[0][0]))
#線性迴歸
predictions = reg.predict(X)
plt.figure(figsize=(16, 8))
plt.scatter(data['駕駛行程/萬公里'], data['售/原'], c='black')
plt.plot( data['駕駛行程/萬公里'], predictions, c='blue', linewidth=2)
plt.xlabel("駕駛里程/萬公里", fontsize= 20, c='blue')
plt.ylabel("售/原百分比%", fontsize= 20, c='blue')
plt.show()

從上圖分析可知:

  售價與原價的比例越低,行駛理程越高。

5,資料分佈箱型圖

#售價與車身級別箱型圖
plt.figure( figsize=(16, 8))
plt.title('售價與車身級別箱型圖', fontsize = 25 ,c = 'green') # 主圖主題名、大小、顏色
plt.ylabel("", fontsize=20, color = 'blue') #設定X軸Y軸名稱(無效) ,字型大小,顏色
plt.xlabel("", fontsize=20, color = 'blue') 
plt.tick_params(labelsize=16)  # 刻度字型大小
sns.boxplot(y = data['售/原'], x = data['車身級別'])

從上圖分析可知:

  大型車的售價與原價比例較低,小型SUV的售價與原價比例較高。

6,總結

  在中國,人們購買最多的車輛價格在5-10萬之間,越發達的城市,它的汽車銷量越高。在一眾車型中,最歡迎的是緊湊型車和中型車。行駛里程最多的是折扣力度比較大的車輛,大型車的折扣力度最大,小型SUV的折扣力度最小。