ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【大数据】—二手车用户数据可视化分析案例 [打印本页]

作者: 宝塔山    时间: 2024-10-31 11:49
标题: 【大数据】—二手车用户数据可视化分析案例
项目配景

在当今的大数据时代,数据可视化扮演着至关重要的角色。随着信息的爆炸式增长,我们面对着亘古未有的数据挑战。这些数据大概来自外交媒体、商业生意业务、科学研究、医疗记载等各个领域,它们巨大而复杂,难以通过传统的数据处置处罚和分析手段进行有效解读。正是在如许的配景下,数据可视化技能应运而生,以其直观、形象、易于理解的特点,成为连接数据与洞察的桥梁。数据可视化通过将抽象的数据转化为图表、图像等视觉元素,可以或许迅速显现数据中的模式、趋势和关联,资助人们快速理解复杂数据背后的含义。无论是数据分析师、商业决策者还是平凡用户,都可以或许通过数据可视化工具轻松探索数据,发现新的见解,从而做出更明智的决策。
因此,在大数据时代,数据可视化技能的重要性不言而喻。它不但是数据分析的重要工具,更是连接数据与洞察、促进跨领域合作的桥梁。随着技能的不停进步和应用场景的不停拓展,数据可视化将在将来发挥更加重要的作用,为我们显现更多未知的数据奥秘。
本文以二手车市场数据给大家展示数据可视化的其中一种好看的方法(数据集已绑定可免费下载)。
数据集介绍

数据集来源于Kaggle,原始数据集为美国二手车市场用户数据,共有7906条,18个变量,各变量含义如下:
Sales_ID(销售ID)
name(二手车名称)
year(购车年份)
selling_price(二手车当前销售代价)
km_driven(总行驶公里数)
Region(使用地区)
State or Province(使用的州或省)
City(使用城市)
fuel(燃料类型)
seller_type(谁在出售汽车)
transmission(汽车的变速器类型)
owner(业主类型)
mileage(汽车行驶里程)
engine(发动机功率)
Max_power(最大功率)
torque(转矩)
seats(座位数)
sold(二手车是否售出)
可视化方法介绍

读入数据:
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. import seaborn as sns
  4. import plotly.express as px
  5. from plotly.offline import iplot
  6. import warnings
  7. warnings.filterwarnings('ignore')
  8. plt.rcParams ['font.sans-serif'] ='SimHei'      #显示中文
  9. plt.rcParams ['axes.unicode_minus']=False       #显示负号
  10. df = pd.read_csv("UserCarData.csv")
  11. df.head()
复制代码

图没有截完!时间有限,下面我主要给大家科谱图形相干内容,别的就不作讲解,截图展示就行。


  1. # 二手车名称分析
  2. print(f"Most Used Sold Car '{df['name'].value_counts().idxmax()}'")
  3. print(f"Lowest Used Car Sold '{df['name'].value_counts().idxmin()}'")
  4. # 使用plotly的express模块来绘制前20个最常被售出的二手车的柱状图   
  5. iplot(px.bar(  
  6.     df['name'].value_counts()[:20],  # 使用前20个最常出现的二手车名称及其计数  
  7.     labels={'value':'数量', 'name':'车名'},  # 设置图表的标签  
  8.     color=df['name'].value_counts()[:20].index,  # 设置每个柱子的颜色为其对应的二手车名称  
  9.     text_auto=True,  # 自动将计数值添加到柱子上  
  10.     title='二手车销量Top20'  # 设置图表的标题  
  11. ))  
复制代码

  1. # 使用plotly的express模块来绘制前20个最常被售出的二手车年份的柱状图  
  2. # 注意:这里先对计数进行排序,确保年份是按从高到低的顺序显示  
  3. # 使用sort_index(ascending=False)确保年份是降序排列  
  4. iplot(px.bar(  
  5.     df['year'].value_counts()[:20].sort_index(ascending=False),  # 取前20个最常出现的年份并降序排序  
  6.     labels={'value':'数量', 'year':'年份'},  # 设置图表的标签  
  7.     color_discrete_sequence=['#c72320'],  # 设置所有柱子的颜色为指定的红色  
  8.     text_auto=True,  # 自动将计数值添加到柱子上  
  9.     title='二手车出售年份柱状图'  # 设置图表的标题  
  10. ).update_xaxes(type=('category'))  # 将x轴设置为类别类型,确保年份按正确的顺序显示  
  11. )  
复制代码

柱状图(Bar Chart):

  1. # 使用plotly的express模块来绘制一个饼图,展示不同地区的二手车销售数量  
  2. iplot(  
  3.     px.pie(  
  4.         values=df['Region'].value_counts(),  # 从df的'Region'列中获取每个地区的销售数量  
  5.         names=['中部','西部','东部','南部'],  # 这里直接指定了地区的名称,但通常应该从数据中获取  
  6.         title='分地区二手车销量占比图'  # 设置饼图的标题  
  7.     ).update_traces(textinfo='label+percent')  # 更新图表的轨迹设置,添加标签和百分比信息  
  8. )
复制代码

  1. # 燃料分析
  2. print(f"Top Fuel Used in Used car '{df['fuel'].value_counts().idxmax()}'")
  3. print(f"Least Fuel Used in Used car '{df['fuel'].value_counts().idxmin()}'")
  4. unique_fuels = df['fuel'].unique().tolist()  # 获取所有唯一的燃料类型  
  5. iplot(  
  6.     px.pie(  
  7.         values=df['fuel'].value_counts(),  # 获取每种燃料类型的频数
  8.         names=unique_fuels,  # 使用实际的燃料类型列表  
  9.         title='使用燃料类型占比图'  
  10.     ).update_traces(textinfo='label+percent')  # 更新饼图的跟踪信息,以显示标签和百分比
  11. )  
复制代码

  1. # 打印最常见的卖家类型  
  2. print(f"Most Type of Seller '{df['seller_type'].value_counts().idxmax()}'")  
  3. # .value_counts() 方法统计'seller_type'列中每种卖家类型的频数  
  4. # .idxmax() 方法返回频数最高的卖家类型的索引,即最常见的卖家类型  
  5.   
  6. # 使用plotly的express模块绘制一个饼图,展示不同卖家类型在二手车销售中的比例  
  7. iplot(  
  8.     px.pie(  
  9.         values=df['seller_type'].value_counts(),  # 获取每种卖家类型的频数  
  10.         names=['Individual','Dealer','Trustmark_Dealer'],  # 这里直接指定了卖家类型的名称,但可能与实际数据不匹配  
  11.         title='二手车卖家类型占比图'  # 设置图表的标题  
  12.     ).update_traces(textinfo='label+percent')  # 更新饼图的跟踪信息,以显示标签和百分比  
  13. )  
复制代码

饼图是一种用于表示差别类别的数据在总量中所占比例的图形。以下是关于饼图的具体解释:

  1. # 打印销售二手车最多的省或州  
  2. print(f"Top State or Province where Sold Used car '{df['State or Province'].value_counts().idxmax()}'")  
  3. # .value_counts() 方法统计'State or Province'列中每个省或州的频数  
  4. # .idxmax() 方法返回频数最高的省或州的索引,即销售二手车最多的省或州  
  5.   
  6. # 打印销售二手车最少的省或州  
  7. # 注意:如果有多个省或州的计数都是最少的,那么这只会返回其中一个  
  8. print(f"Least State or Province where Sold Used car '{df['State or Province'].value_counts().idxmin()}'")  
  9. # .idxmin() 方法返回频数最低的省或州的索引,即销售二手车最少的省或州  
  10.   
  11. # 使用plotly的express模块绘制一个水平柱状图,展示销售二手车数量排名前30的省或州  
  12. iplot(  
  13.     px.bar(  
  14.         df['State or Province'].value_counts().sort_values(ascending=True)[:30],  # 获取销售数量排名前30的省或州及其频数  
  15.         orientation='h',  # 设置柱状图为水平方向  
  16.         color=df['State or Province'][:30].index,  # 这里设置颜色通常不会按预期工作,因为这里索引可能与排序后的数据不匹配  
  17.         title='二手车销售地区Top榜',  # 设置图表的标题  
  18.         labels={'value':'销售数量'}  # 设置图表的标签,这里只设置了y轴(即省或州)的计数标签  
  19.     )  
  20. )  
复制代码

  1. # 打印销售二手车最多的城市  
  2. print(f"Top City where Sold Used car '{df['City'].value_counts().idxmax()}'")  
  3. # .value_counts() 方法统计'City'列中每个城市的频数  
  4. # .idxmax() 方法返回频数最高的城市的索引,即销售二手车最多的城市  
  5.   
  6. # 打印销售二手车最少的城市  
  7. # 注意:如果有多个城市的计数都是最少的,那么这只会返回其中一个  
  8. print(f"Least City where Sold Used car '{df['City'].value_counts().idxmin()}'")  
  9. # .idxmin() 方法返回频数最低的城市的索引,即销售二手车最少的城市  
  10.   
  11. # 使用plotly的express模块绘制一个柱状图,展示销售二手车数量排名前20的城市  
  12. iplot(  
  13.     px.bar(  
  14.         df['City'].value_counts().sort_values(ascending=False)[:20],  # 获取销售数量排名前20的城市及其频数  
  15.         color=df['City'][:20].index,  # 这里设置颜色通常不会按预期工作,因为这里的索引可能与排序后的数据不匹配  
  16.         title='二手车销售城市Top榜',  # 设置图表的标题  
  17.         labels={'value':'数量', 'City':'城市'},  # 设置图表的标签,这里设置了y轴的计数标签  
  18.         text_auto=True  # 自动在柱状图上显示频数值  
  19.     )  
  20. )  
复制代码

  1. # 使用plotly的express模块绘制一个水平柱状图,展示二手售出车中最常见的20个转矩值  
  2.   
  3. # iplot 函数用于在Jupyter Notebook等环境中交互式地显示plotly图表  
  4. iplot(  
  5.     # 使用px.bar绘制水平柱状图  
  6.     px.bar(  
  7.         # 对'torque'列中的转矩值进行计数,并按计数降序排列,取前20个  
  8.         df['torque'].value_counts().sort_values(ascending=False)[:20],   
  9.         # 设置柱状图为水平方向  
  10.         orientation='h',            
  11.         # 尝试设置颜色,但这里使用df['torque'][:20].index是不正确的,因为它会取前20个转矩值的索引,而不是计数  
  12.         # 应该使用一个颜色列表来指定柱状图的颜色  
  13.         color=df['torque'][:20].index,  # 注释:这行代码可能是错误的,因为value_counts()的结果与原始数据的索引不匹配            
  14.         # 设置图表的标题  
  15.         title='二手车常见转矩TOP20',            
  16.         # 设置图表的标签,但这里labels的用法可能不准确,plotly通常使用更直接的方式设置轴标签  
  17.         labels={'value':'Count','torque':'Torque'}  # 注释:这行代码可能不会按预期工作,因为plotly使用不同的参数来设置轴标签  
  18.     )  
  19.     .update_traces(textposition='outside')  # (假设代码原本还包括这行)用于在柱状图外部显示数值标签  
  20.     .update_layout(xaxis_title='Torque', yaxis_title='Count')  # 正确的设置轴标签的方式  
  21. )  
复制代码

水平柱状图,作为柱状图的一种变体,其特点在于条形是水平放置的,与常见的垂直柱状图形成对比。以下是关于水平柱状图的具体解释:

  1. # 行驶里程分析
  2. # 创建一个新的图形窗口,并设置其大小为宽度15英寸,高度6英寸  
  3. plt.figure(figsize=(15,6))   
  4. # 使用seaborn库中的kdeplot函数来绘制df['mileage']列(即行驶里程)的核密度估计图  
  5. # fill=True参数表示填充曲线下的区域,使图形更加直观  
  6. sns.kdeplot(df['mileage'], fill=True)   
  7. # 设置x轴的标签为"Mileage",即行驶里程  
  8. plt.xlabel("行驶里程")   
  9. # 显示图形  
  10. plt.show()
复制代码



本篇废话不多,全是干货。
创作不易,点赞、品评、转发三连走起!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4