做漆包線的招聘網(wǎng)站在線培訓(xùn)管理系統(tǒng)
項目背景
在當(dāng)今的大數(shù)據(jù)時代,數(shù)據(jù)可視化扮演著至關(guān)重要的角色。隨著信息的爆炸式增長,我們面臨著前所未有的數(shù)據(jù)挑戰(zhàn)。這些數(shù)據(jù)可能來自社交媒體、商業(yè)交易、科學(xué)研究、醫(yī)療記錄等各個領(lǐng)域,它們龐大而復(fù)雜,難以通過傳統(tǒng)的數(shù)據(jù)處理和分析手段進(jìn)行有效解讀。正是在這樣的背景下,數(shù)據(jù)可視化技術(shù)應(yīng)運(yùn)而生,以其直觀、形象、易于理解的特點(diǎn),成為連接數(shù)據(jù)與洞察的橋梁。數(shù)據(jù)可視化通過將抽象的數(shù)據(jù)轉(zhuǎn)化為圖表、圖像等視覺元素,能夠迅速揭示數(shù)據(jù)中的模式、趨勢和關(guān)聯(lián),幫助人們快速理解復(fù)雜數(shù)據(jù)背后的含義。無論是數(shù)據(jù)分析師、商業(yè)決策者還是普通用戶,都能夠通過數(shù)據(jù)可視化工具輕松探索數(shù)據(jù),發(fā)現(xiàn)新的見解,從而做出更明智的決策。
因此,在大數(shù)據(jù)時代,數(shù)據(jù)可視化技術(shù)的重要性不言而喻。它不僅是數(shù)據(jù)分析的重要工具,更是連接數(shù)據(jù)與洞察、促進(jìn)跨領(lǐng)域合作的橋梁。隨著技術(shù)的不斷進(jìn)步和應(yīng)用場景的不斷拓展,數(shù)據(jù)可視化將在未來發(fā)揮更加重要的作用,為我們揭示更多未知的數(shù)據(jù)奧秘。
本文以二手車市場數(shù)據(jù)給大家展示數(shù)據(jù)可視化的其中一種好看的方法。
數(shù)據(jù)集介紹
數(shù)據(jù)集來源于Kaggle,原始數(shù)據(jù)集為美國二手車市場用戶數(shù)據(jù),共有7906條,18個變量,各變量含義如下:
Sales_ID(銷售ID)
name(二手車名稱)
year(購車年份)
selling_price(二手車當(dāng)前銷售價格)
km_driven(總行駛公里數(shù))
Region(使用地區(qū))
State or Province(使用的州或省)
City(使用城市)
fuel(燃料類型)
seller_type(誰在出售汽車)
transmission(汽車的變速器類型)
owner(業(yè)主類型)
mileage(汽車行駛里程)
engine(發(fā)動機(jī)功率)
Max_power(最大功率)
torque(轉(zhuǎn)矩)
seats(座位數(shù))
sold(二手車是否售出)
可視化方法介紹
讀入數(shù)據(jù):
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
from plotly.offline import iplot
import warnings
warnings.filterwarnings('ignore')
plt.rcParams ['font.sans-serif'] ='SimHei' #顯示中文
plt.rcParams ['axes.unicode_minus']=False #顯示負(fù)號
df = pd.read_csv("UserCarData.csv")
df.head()
圖沒有截完!時間有限,下面我主要給大家科譜圖形相關(guān)內(nèi)容,別的就不作講解,截圖展示就行。
# 二手車名稱分析
print(f"Most Used Sold Car '{df['name'].value_counts().idxmax()}'")
print(f"Lowest Used Car Sold '{df['name'].value_counts().idxmin()}'")
# 使用plotly的express模塊來繪制前20個最常被售出的二手車的柱狀圖
iplot(px.bar( df['name'].value_counts()[:20], # 使用前20個最常出現(xiàn)的二手車名稱及其計數(shù) labels={'value':'數(shù)量', 'name':'車名'}, # 設(shè)置圖表的標(biāo)簽 color=df['name'].value_counts()[:20].index, # 設(shè)置每個柱子的顏色為其對應(yīng)的二手車名稱 text_auto=True, # 自動將計數(shù)值添加到柱子上 title='二手車銷量Top20' # 設(shè)置圖表的標(biāo)題
))
# 使用plotly的express模塊來繪制前20個最常被售出的二手車年份的柱狀圖
# 注意:這里先對計數(shù)進(jìn)行排序,確保年份是按從高到低的順序顯示
# 使用sort_index(ascending=False)確保年份是降序排列
iplot(px.bar( df['year'].value_counts()[:20].sort_index(ascending=False), # 取前20個最常出現(xiàn)的年份并降序排序 labels={'value':'數(shù)量', 'year':'年份'}, # 設(shè)置圖表的標(biāo)簽 color_discrete_sequence=['#c72320'], # 設(shè)置所有柱子的顏色為指定的紅色 text_auto=True, # 自動將計數(shù)值添加到柱子上 title='二手車出售年份柱狀圖' # 設(shè)置圖表的標(biāo)題
).update_xaxes(type=('category')) # 將x軸設(shè)置為類別類型,確保年份按正確的順序顯示
)
柱狀圖(Bar Chart):
- 定義:柱狀圖,也稱為條形圖,是一種用于展示離散數(shù)據(jù)分布情況的圖形。它通過一系列垂直或水平的條形來表示不同類別的數(shù)據(jù),每個條形的長度(或高度)代表該類別數(shù)據(jù)的數(shù)值大小。
- 特點(diǎn):
直觀易懂:柱狀圖通過條形的高度或長度直接反映數(shù)據(jù)的數(shù)值大小,使得數(shù)據(jù)之間的對比一目了然。
易于比較:當(dāng)需要比較不同類別之間的數(shù)據(jù)時,柱狀圖可以清晰地展示它們之間的數(shù)量關(guān)系,幫助用戶快速識別出數(shù)據(jù)的差異和趨勢。
支持多組數(shù)據(jù):柱狀圖可以同時展示多組數(shù)據(jù),每組數(shù)據(jù)使用不同的顏色或標(biāo)記進(jìn)行區(qū)分,便于用戶進(jìn)行多組數(shù)據(jù)的比較和分析。
易于擴(kuò)展:柱狀圖可以與其他數(shù)據(jù)可視化元素結(jié)合使用,如添加數(shù)據(jù)標(biāo)簽、圖例、坐標(biāo)軸等,以提供更豐富的信息。 - 用途:
數(shù)據(jù)分析:柱狀圖常用于數(shù)據(jù)分析中,幫助用戶快速了解數(shù)據(jù)的分布情況和特征,發(fā)現(xiàn)數(shù)據(jù)中的規(guī)律和問題。
業(yè)務(wù)報告:在業(yè)務(wù)報告中,柱狀圖可以用來展示銷售數(shù)據(jù)、市場份額、用戶活躍度等指標(biāo),幫助決策者了解業(yè)務(wù)狀況并做出決策。
科學(xué)研究:在科學(xué)研究領(lǐng)域,柱狀圖可以用來展示實驗數(shù)據(jù)、調(diào)查結(jié)果等,幫助研究人員分析數(shù)據(jù)并得出結(jié)論。
# 使用plotly的express模塊來繪制一個餅圖,展示不同地區(qū)的二手車銷售數(shù)量
iplot( px.pie( values=df['Region'].value_counts(), # 從df的'Region'列中獲取每個地區(qū)的銷售數(shù)量 names=['中部','西部','東部','南部'], # 這里直接指定了地區(qū)的名稱,但通常應(yīng)該從數(shù)據(jù)中獲取 title='分地區(qū)二手車銷量占比圖' # 設(shè)置餅圖的標(biāo)題 ).update_traces(textinfo='label+percent') # 更新圖表的軌跡設(shè)置,添加標(biāo)簽和百分比信息
)
# 燃料分析
print(f"Top Fuel Used in Used car '{df['fuel'].value_counts().idxmax()}'")
print(f"Least Fuel Used in Used car '{df['fuel'].value_counts().idxmin()}'")
unique_fuels = df['fuel'].unique().tolist() # 獲取所有唯一的燃料類型
iplot( px.pie( values=df['fuel'].value_counts(), # 獲取每種燃料類型的頻數(shù)names=unique_fuels, # 使用實際的燃料類型列表 title='使用燃料類型占比圖' ).update_traces(textinfo='label+percent') # 更新餅圖的跟蹤信息,以顯示標(biāo)簽和百分比
)
# 打印最常見的賣家類型
print(f"Most Type of Seller '{df['seller_type'].value_counts().idxmax()}'")
# .value_counts() 方法統(tǒng)計'seller_type'列中每種賣家類型的頻數(shù)
# .idxmax() 方法返回頻數(shù)最高的賣家類型的索引,即最常見的賣家類型 # 使用plotly的express模塊繪制一個餅圖,展示不同賣家類型在二手車銷售中的比例
iplot( px.pie( values=df['seller_type'].value_counts(), # 獲取每種賣家類型的頻數(shù) names=['Individual','Dealer','Trustmark_Dealer'], # 這里直接指定了賣家類型的名稱,但可能與實際數(shù)據(jù)不匹配 title='二手車賣家類型占比圖' # 設(shè)置圖表的標(biāo)題 ).update_traces(textinfo='label+percent') # 更新餅圖的跟蹤信息,以顯示標(biāo)簽和百分比
)
餅圖是一種用于表示不同類別的數(shù)據(jù)在總量中所占比例的圖形。以下是關(guān)于餅圖的詳細(xì)解釋:
- 定義: 餅圖(Pie
Chart),也稱為扇形圖或圓餅圖,是一個圓形圖表,用于展示不同部分與整體之間的關(guān)系。它通過將圓形劃分為若干個扇區(qū)(或稱為“切片”),每個扇區(qū)代表一個數(shù)據(jù)類別,扇區(qū)的大小(即角度或面積)表示該類別在總體中所占的比例。 - 特點(diǎn): 直觀性:餅圖通過扇區(qū)的大小直觀地展示不同類別在總體中的占比情況,易于理解和分析。
完整性:所有扇區(qū)的面積之和等于整個圓的面積,即100%,這表示數(shù)據(jù)的完整性。
對比性:通過對比不同扇區(qū)的大小,可以清晰地看出不同類別之間的比例關(guān)系。 - 制作要點(diǎn): 數(shù)據(jù)準(zhǔn)備:首先,需要準(zhǔn)備好需要展示的數(shù)據(jù),并確保所有數(shù)據(jù)的總和為100%。
扇區(qū)劃分:根據(jù)數(shù)據(jù)的比例關(guān)系,將圓形劃分為若干個扇區(qū)。每個扇區(qū)的角度或面積應(yīng)與其在總體中所占的比例相對應(yīng)。
顏色選擇:為了增強(qiáng)圖表的可讀性和美觀性,可以為不同的扇區(qū)選擇不同的顏色或圖案。
標(biāo)注:在每個扇區(qū)中,可以添加相應(yīng)的標(biāo)簽或百分比標(biāo)注,以便更清晰地展示每個類別的具體占比情況。 - 應(yīng)用場景: 群體構(gòu)成分析:如市場調(diào)研中,可以使用餅圖展示不同年齡段、性別或教育程度的調(diào)查對象在總?cè)丝谥械谋壤?br /> 投資組合分析:投資者可以使用餅圖展示不同資產(chǎn)在投資組合中的比例,以便管理風(fēng)險和優(yōu)化投資組合。
銷售數(shù)據(jù)分析:通過餅圖展示不同產(chǎn)品或服務(wù)在整體銷售額中的占比情況,有助于企業(yè)了解各類產(chǎn)品或服務(wù)的銷售情況,進(jìn)而調(diào)整銷售策略和資源分配。
用戶滿意度調(diào)查:企業(yè)可以使用餅圖展示用戶對產(chǎn)品或服務(wù)的滿意度分布情況,以便改進(jìn)產(chǎn)品或服務(wù),提升用戶滿意度和忠誠度。
# 打印銷售二手車最多的省或州
print(f"Top State or Province where Sold Used car '{df['State or Province'].value_counts().idxmax()}'")
# .value_counts() 方法統(tǒng)計'State or Province'列中每個省或州的頻數(shù)
# .idxmax() 方法返回頻數(shù)最高的省或州的索引,即銷售二手車最多的省或州 # 打印銷售二手車最少的省或州
# 注意:如果有多個省或州的計數(shù)都是最少的,那么這只會返回其中一個
print(f"Least State or Province where Sold Used car '{df['State or Province'].value_counts().idxmin()}'")
# .idxmin() 方法返回頻數(shù)最低的省或州的索引,即銷售二手車最少的省或州 # 使用plotly的express模塊繪制一個水平柱狀圖,展示銷售二手車數(shù)量排名前30的省或州
iplot( px.bar( df['State or Province'].value_counts().sort_values(ascending=True)[:30], # 獲取銷售數(shù)量排名前30的省或州及其頻數(shù) orientation='h', # 設(shè)置柱狀圖為水平方向 color=df['State or Province'][:30].index, # 這里設(shè)置顏色通常不會按預(yù)期工作,因為這里索引可能與排序后的數(shù)據(jù)不匹配 title='二手車銷售地區(qū)Top榜', # 設(shè)置圖表的標(biāo)題 labels={'value':'銷售數(shù)量'} # 設(shè)置圖表的標(biāo)簽,這里只設(shè)置了y軸(即省或州)的計數(shù)標(biāo)簽 )
)
# 打印銷售二手車最多的城市
print(f"Top City where Sold Used car '{df['City'].value_counts().idxmax()}'")
# .value_counts() 方法統(tǒng)計'City'列中每個城市的頻數(shù)
# .idxmax() 方法返回頻數(shù)最高的城市的索引,即銷售二手車最多的城市 # 打印銷售二手車最少的城市
# 注意:如果有多個城市的計數(shù)都是最少的,那么這只會返回其中一個
print(f"Least City where Sold Used car '{df['City'].value_counts().idxmin()}'")
# .idxmin() 方法返回頻數(shù)最低的城市的索引,即銷售二手車最少的城市 # 使用plotly的express模塊繪制一個柱狀圖,展示銷售二手車數(shù)量排名前20的城市
iplot( px.bar( df['City'].value_counts().sort_values(ascending=False)[:20], # 獲取銷售數(shù)量排名前20的城市及其頻數(shù) color=df['City'][:20].index, # 這里設(shè)置顏色通常不會按預(yù)期工作,因為這里的索引可能與排序后的數(shù)據(jù)不匹配 title='二手車銷售城市Top榜', # 設(shè)置圖表的標(biāo)題 labels={'value':'數(shù)量', 'City':'城市'}, # 設(shè)置圖表的標(biāo)簽,這里設(shè)置了y軸的計數(shù)標(biāo)簽 text_auto=True # 自動在柱狀圖上顯示頻數(shù)值 )
)
# 使用plotly的express模塊繪制一個水平柱狀圖,展示二手售出車中最常見的20個轉(zhuǎn)矩值 # iplot 函數(shù)用于在Jupyter Notebook等環(huán)境中交互式地顯示plotly圖表
iplot( # 使用px.bar繪制水平柱狀圖 px.bar( # 對'torque'列中的轉(zhuǎn)矩值進(jìn)行計數(shù),并按計數(shù)降序排列,取前20個 df['torque'].value_counts().sort_values(ascending=False)[:20], # 設(shè)置柱狀圖為水平方向 orientation='h', # 嘗試設(shè)置顏色,但這里使用df['torque'][:20].index是不正確的,因為它會取前20個轉(zhuǎn)矩值的索引,而不是計數(shù) # 應(yīng)該使用一個顏色列表來指定柱狀圖的顏色 color=df['torque'][:20].index, # 注釋:這行代碼可能是錯誤的,因為value_counts()的結(jié)果與原始數(shù)據(jù)的索引不匹配 # 設(shè)置圖表的標(biāo)題 title='二手車常見轉(zhuǎn)矩TOP20', # 設(shè)置圖表的標(biāo)簽,但這里labels的用法可能不準(zhǔn)確,plotly通常使用更直接的方式設(shè)置軸標(biāo)簽 labels={'value':'Count','torque':'Torque'} # 注釋:這行代碼可能不會按預(yù)期工作,因為plotly使用不同的參數(shù)來設(shè)置軸標(biāo)簽 ) .update_traces(textposition='outside') # (假設(shè)代碼原本還包括這行)用于在柱狀圖外部顯示數(shù)值標(biāo)簽 .update_layout(xaxis_title='Torque', yaxis_title='Count') # 正確的設(shè)置軸標(biāo)簽的方式
)
水平柱狀圖,作為柱狀圖的一種變體,其特點(diǎn)在于條形是水平放置的,與常見的垂直柱狀圖形成對比。以下是關(guān)于水平柱狀圖的詳細(xì)解釋:
- 定義:
水平柱狀圖,也稱為橫向柱狀圖或條形圖,是通過一系列水平放置的條形來展示不同類別的數(shù)據(jù),其中條形的長度表示數(shù)據(jù)的數(shù)值大小。與垂直柱狀圖相比,水平柱狀圖在數(shù)據(jù)分類標(biāo)簽較長時更為適用。 - 特點(diǎn): 水平展示:與垂直柱狀圖不同,水平柱狀圖的條形是水平放置的,這使得在標(biāo)簽較長或需要更多空間展示標(biāo)簽時更為方便。
易于閱讀:水平柱狀圖同樣能夠清晰地展示數(shù)據(jù)的對比關(guān)系和分布情況,其直觀性使得數(shù)據(jù)解讀更為簡單直接。
適合長標(biāo)簽:當(dāng)數(shù)據(jù)的分類標(biāo)簽較長時,水平柱狀圖可以更好地利用空間,避免標(biāo)簽之間的重疊或截斷。 - 用途: 數(shù)據(jù)對比:水平柱狀圖適用于展示不同類別數(shù)據(jù)之間的對比情況,如銷售額、用戶活躍度等。
時間序列數(shù)據(jù):盡管垂直柱狀圖在時間序列數(shù)據(jù)的展示上更為常見,但水平柱狀圖在某些情況下也能很好地體現(xiàn)數(shù)據(jù)隨時間的變化情況。
大屏展示:由于水平柱狀圖在大屏中占用的空間較大,因此在大屏數(shù)據(jù)可視化項目中,水平柱狀圖可以作為一種有效的展示方式。 - 制作要點(diǎn): 標(biāo)簽方向:由于條形是水平放置的,因此標(biāo)簽通常位于條形的下方或上方,以便與條形相對應(yīng)。
顏色搭配:與垂直柱狀圖一樣,水平柱狀圖也需要注意顏色搭配的合理性,以確保圖表的清晰度和美觀度。
數(shù)值標(biāo)注:在每個條形上方或下方標(biāo)注具體的數(shù)值,有助于更直觀地了解數(shù)據(jù)的具體大小。
# 行駛里程分析
# 創(chuàng)建一個新的圖形窗口,并設(shè)置其大小為寬度15英寸,高度6英寸
plt.figure(figsize=(15,6))
# 使用seaborn庫中的kdeplot函數(shù)來繪制df['mileage']列(即行駛里程)的核密度估計圖
# fill=True參數(shù)表示填充曲線下的區(qū)域,使圖形更加直觀
sns.kdeplot(df['mileage'], fill=True)
# 設(shè)置x軸的標(biāo)簽為"Mileage",即行駛里程
plt.xlabel("行駛里程")
# 顯示圖形
plt.show()
本篇廢話不多,全是干貨。
創(chuàng)作不易,點(diǎn)贊、評論、轉(zhuǎn)發(fā)三連走起!