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