python实战讲解_Python数据可视化实战讲解

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

开运张 | 作者

知乎专栏 | 来源

https://zhuanlan.zhihu.com/p/55642042

三个步骤:

确定问题,选择图形

转换数据,应用函数

参数设置,一目了然

1a30f858b95331eec7f30d0a961d5bf8.png

首先对时段进行分析

第一步

提出问题:租赁总量对应湿度的变化趋势

适合图形:因为湿度属于连续性数值变量,我们可以选择折线图反应变化趋势

第二步

转换数据:我们需要一个二维数据框,按照温度变化排序,取对应的三个租赁数的平均值

应用函数:直接应用plt的plot函数即可完成折线图

workingday_df = Bikedata[Bikedata['workingday']==1]#t

workingday_df = workingday_df.groupby(['hour'],as_index=True).agg({'count':'mean','registered':'mean','casual':'mean'})

nworkingday_df = Bikedata[Bikedata['workingday']==0]

nworkingday_df = nworkingday_df.groupby(['hour'],as_index=True).agg({'count':'mean','registered':'mean','casual':'mean'})

nworkingday_df.head()

ce710b5c29c5cf14dca427ada87c81fe.png

第三步:设置参数

figure,axes = plt.subplots(1,2,sharey=True)#设置一个1*2的画布,且共享y轴

workingday_df.plot(figsize=(15,5),title='The average number of rentals initiated per hour in the working day',ax=axes[0])

nworkingday_df.plot(figsize=(15,5),title='The average number of rentals initiated per hour in the nworking day',ax=axes[1])

可以看出:

在工作日,会员出行对应两个很明显的早晚高峰期,并且在中午会有一个小的高峰,可能对应中午外出就餐需求;

工作日非会员用户出行高峰大概在下午三点;

工作日会员出行次数远多于非会员用户;

在周末,总体出行趋势一致,大部分用车发生在11-5点这段时间,早上五点为用车之最。

对温度进行分析

第一步

提出问题:租赁总量对应湿度的变化趋势

适合图形:因为湿度属于连续性数值变量,我们可以选择折线图反应变化趋势

第二步

转换数据:我们需要一个二维数据框,按照温度变化排序,取对应的三个租赁数的平均值

应用函数:直接应用plt的plot函数即可完成折线图

第三步

参数设置:只需要设置折线图的标题,其他参数默认

temp_df = Bikedata.groupby(['temp'],as_index='True').agg({'count':'mean','registered':'mean','casual':'mean'})

temp_df.plot(title = 'The average number of rentals initiated per hour changes with the temperature')

11936ee15beac0e2012813a6452fc380.png

随着温度的升高,租赁数量呈上升趋势;

在温度达到35度时,因天气炎热,总体数量开始下降;

在温度在4度时,租赁数达到最低点;

湿度对租赁数量的影响

第一步

提出问题:租赁总量对应湿度的变化趋势

适合图形:因为湿度属于连续性数值变量,我们可以选择折线图反应变化趋势

第二步

转换数据:我们需要一个二维数据框,按照温度变化排序,取对应的三个租赁数的平均值

应用函数:直接应用plt的plot函数即可完成折线图

第三步

参数设置:只需要设置折线图的标题,其他参数默认

humidity_df = Bikedata.groupby(['humidity'],as_index=True).agg({'count':'mean','registered':'mean','casual':'mean'})

humidity_df.plot(title='Average number of rentals initiated per hour in different humidity')

a9e548a2a584e8f737a088e127dc55bd.png

可以观察到在湿度20左右租赁数量迅速达到高峰值,此后缓慢递减。

年份,月份和季节作图方法类似,都采用折线图绘制,这里省略。

查看不同天气对出行情况的影响

第一步

提出问题:租赁总量对应湿度的变化趋势

适合图形:因为天气情况属于数值型分类变量,我们可以选择柱形图观察数量分布

第二步

转换数据:我们需要一个二维数据框,按照天气情况对租赁数量取平均值

应用函数:应用plt的plot.bar函数绘制组合柱形图

第三步

参数设置:只需要设置折线图的标题,其他参数默认

weather_df = Bikedata.groupby(['weather'],as_index=True).agg({'registered':'mean','casual':'mean'})

weather_df.plot.bar(stacked=True,title='Average number of rentals initiated per hour in different weather')

2c089f8cad671dbda7564f6707289973.png

观察到天气等级为4时,平均出行人数比天气等级为2是还要高,这不符合常理

我们查看一下天气等级为4的详细情况

count_weather = Bikedata.groupby('weather')

count_weather[['casual','registered','count']].count()

b8f379a1051b883417225d74bce4c9a7.png

天气状况为4级的只有一天,我们把数据打印出来查看一下

Bikedata[Bikedata['weather']==4]

d8dc2225f2b6db21ae274ae6f732a0b8.png

时间为工作日的下午六点钟,属于晚高峰异常数据,不具有代表性。

会员用户和临时用户在整体用户中占比

第一步

提出问题:查看会员用户和临时用户在整体用户中的比例

适合图形:查看占比,适合用饼图pie

第二步

转换数据:需要一个二维数据框,按天数取两种用户的平均值

应用函数:应用plt的plot.pie函数绘制饼图

第三步

参数设置:这是数据标签和类别标签

#考虑到相同日期是否工作日,星期几,以及所属年份等信息是一样的,把租赁数据按天求和,其它日期类数据取平均值

day_df = Bikedata.groupby(['date'], as_index=False).agg({'casual':'sum','registered':'sum','count':'sum', 'workingday':'mean','weekday':'mean','holiday':'mean','year':'mean'})

day_df.head()

542a1ed59a26aabf25eaa7da3581c5d3.png

#按天取两种类型用户平均值

number_pei=day_df[['casual','registered']].mean()

number_pei

casual 517.411765

registered 2171.067031

dtype: float64

#绘制饼图

plt.axes(aspect='equal')

plt.pie(number_pei, labels=['casual','registered'], autopct='%1.1f%%', pctdistance=0.6 , labeldistance=1.05 , radius=1 )

plt.title('Casual or registered in the total lease')

Text(0.5,1,'Casual or registered in the total lease')

fbda33797c3e8c91ed83cba90c11242d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值