用到的数据是在某地级市政府网站获取的公开数据,现以天气数据为例进行简单的数据分析

初始数据以xlsx格式储存:

初始的数据格式对于后续分析来说不太友好,我希望数据能够具有原子性,所以接下来利用excel自带的功能对数据进行整理,利用分列和替换等功能使数据具有原子性:

最终数据形式:

其中tH代表当日最高气温,tL代表当日最低气温,wd1代表风向1,wd2代表风向2,wf11代表风向1的最小风力,后续类推

但是在这个csv文件中仍然有没有处理的数据:w1和w2,先不管它们

将csv文件导入到Rstudio当中:

weather<-read.csv('weather.csv',header=T,stringsAsFactors = T)

这个数据框包含2011年到2018年某地级市的气象数据,首先将每一年的数据单独提取出来(以2011年为例)

weather2011<-weather[weather$year==2011,]

可以利用table()函数求名义型变量的频数,以w1为例:

table(weather2011$w1)

从结果中可以得出一个初步结论:该城市多云天气较多,雨天较多,晴天只占全年时间的五分之一,很典型的南方气候。而实际上该城市也位于我国南方。

利用直方图更直观地观测一下天气状况

w1t<-table(weather2011$w1)
w1b<-barplot(w1t,ylim=c(0,140))
text(w1b,w1t+5,labels=w1t)

在简单的柱状图上方添加了频数数据

这个简单的方法可以用在名义型变量上来查看和比较频数数据

接下来针对2011年的气象数据中的气温部分进行分析:

plot(weather2011$tH,type='l',col='red',ylim=c(-5,35),main='Daily Temperature Info of Year2011',xlab='days',ylab='Temperature')
lines(weather2011$tL,type='l',col='blue')
lines(weather2011$tH-weather2011$tL,type='l',col='black')
lines((weather2011$tH+weather2011$tL)/2,type='l',col='green')
legend(300,35,c('High','Low','Diff','Aver'),col=c('red','blue','black','green'),lty=1,cex=0.5)

这幅折线图同时展示了四项数据:最高气温、最低气温、气温差值和平均气温,分别用红蓝黑绿四种颜色的线条代表。

在这幅图中可以大致看出该城市的气温走势规律:几乎全年的平均气温都在0度以上,最高气温达到了35度,最低气温在零下4度左右,从全年的角度来看,气温差值的波动并不大,但是在年初几个月(冬春)的气温差要高于年中(夏秋)的气温差;这一点同样体现在平均气温的波动上,200天附近的平均气温波动程度要明显低于100天附近的波动程度,这说明夏天虽然热,但是温度还是相对稳定的,与春天相比,很显然是春天更容易伤风感冒。

下面以月份为单位,求2011年每月的平均温度:

avertH2011<-aggregate(tH~month,weather2011,mean)
avertL2011<-aggregate(tL~month,weather2011,mean)

得到了两个数据框,然后用merge()函数将其整合:

avert2011<-merge(avertH2011,avertL2011)

使用apply()函数添加一列平均值:

avert2011$tM<-apply(avert2011[,2:3],1,mean)

再使用apply()函数添加一列差值,首先要定义一个函数求差值:

Dif<-function(data){tH-tL
}
avert2011$tD<-apply(avert2011,1,Dif)

在avert2011的df里添加了一列名为tD的变量,代表气温差值(tH-tL)

保留一位小数

avert2011[,2:5]<-round(avert2011[,2:5],digits=1)

接下来可以利用整理出的2011年的气温数据进行可视化处理:绘制折线图

attach(avert2011)

平均差值

plot(month,tD,xaxt='n',yaxt='n',ylim=c(6,11),type='b',main='Monthly Average Temperature Difference \n of Year2011')
axis(1,at=seq(1,12,1))
axis(2,at=seq(6,11,0.5))

在折线图中添加数值标注

text(month,tD+0.2,labels=tD)

从图中可以看到温差最大的月份是四月(10.6℃),而且整个春季的月平均温差要高于其他三季。

平均气温

plot(month,tM,xaxt='n',yaxt='n',ylim=c(0,30),type='b',main='Monthly Average Temperature \n of Year2011')
axis(1,at=seq(1,12,1))
axis(2,at=seq(0,30,2))
text(month+1,tM,labels=tM)
text(11.2,5,labels=5.2)#补上十二月的数据

对月平均气温数据的分析结论与之前对全年气温的分析结果相符

对天气数据进行简单的数据分析相关推荐

  1. 用python进行简单的数据分析和数据可视化

    用python进行简单的数据分析和数据可视化 本篇文章主要是初步探索数据分析,简单了解数据分析大致流程 数据来源:来自于Kaggle平台上的一个项目:Explore San Francisco cit ...

  2. python数据分析可视化大作业——对地铁数据的简单数据分析

    一.选题意义 随着我国经济的快速发展,我们国家的地铁事业正在快速发展,很多城市都拥有了地铁.自1969年北京开通第一条地铁线路建成通车,到2021年全国总线路总长达7253.73公里,我们只用了40年 ...

  3. scrapy爬取天气存MySQL_Scrapy实战篇(五)之爬取历史天气数据

    本篇文章我们以抓取历史天气数据为例,简单说明数据抓取的两种方式: 1.一般简单或者较小量的数据需求,我们以requests(selenum)+beautiful的方式抓取数据 2.当我们需要的数据量较 ...

  4. 抓取中国天气网当前时段所有城市的天气数据(python+xpath)

    先给大家看一看效果图(我一共获取到了462个城市的天气): 前不久,2019年开放数据中心峰会在北京国际会议中心成功召开,ODCC指出:"对数据进行汇聚,在体系化融合中产生新的价值已成为未来 ...

  5. 玩转人工智能(3)常用的大数据框架简单介绍

    时光不老,我们不散. 讲大数据框架前,简单的介绍下大数据的文化.信息时代人类社会的进步得益于分享和开源.大数据时代属于信息时代的第三代发展阶段(2001年到2011年可以认为是CT行业的黄金期,200 ...

  6. 一文解锁华为云新技能-AIOT开发全流程【设备接入-ESP端侧数据收集[MQTT]-实时数据分析】(步步截图较详细)

    一文解锁华为云新技能-AIOT开发全流程[设备接入-ESP端侧数据收集[MQTT]-实时数据分析](步步截图较详细) 在这篇你将会接触到:从物联网工程师从硬件层-通信层到应用层全流程:开发华为云最基本 ...

  7. Python爬取天气数据,并且进行天气预报(已实现)

    分析任意一个城市的天气状况 先分析网页 爬取数据 获取城市ID 获得城市的昨天与今天的气温 城市多音字问题 爬取城市的历史数据(用到正则匹配)并进行数据清洗 天气数据分析绘图 用机器学习进行气温预测 ...

  8. JSONP跨域jQuery处理整理(附天气数据实例)

    写在前面 跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨 ...

  9. 3星|《数据思维:从数据分析到商业价值》:有趣的数据分析案例

    3星|<数据思维:从数据分析到商业价值>:有趣的数据分析案例 Posted on 2017-11-24 19:59 左其盛 阅读(118) 评论(0) 编辑 收藏 数据思维(从数据分析到商 ...

最新文章

  1. 假装不知道有尽头(博弈论的诡计)
  2. 你要成为人才,先学习做伯乐
  3. 3----结构体中使用柔性数组
  4. AlertBox 弹出层(信息提示框)效果
  5. 3.3 参数估计:贝叶斯估计
  6. datetime模块日期转换和列表sorted排序
  7. 继承Thread 创建多线程的简单实现
  8. 大爷与支付宝同名,曾想状告阿里巴巴侵权,现在过得怎么样
  9. websocket连接mysql_websocket 使用 spring 的service层 ,进而调用里面的 dao层 来操作数据库 ,包括redis、mysql等通用...
  10. scss编译输出css并转换成rem
  11. Mybatis源码解析:sql参数处理(3)
  12. bzoj3209:3209: 花神的数论题
  13. iOS Expected unqualified-id 和 Unkown type name 'NSString'
  14. linux+shell+整数计算,Shell expr命令进行整数计算的实现
  15. 【电机测速】一文搞懂M法、T法测速原理
  16. 回归分析常数项t值没有显著异于零怎么办_SPSS线性回归|太方便了,别人不想告诉你的其他操作我都总结好了(中)...
  17. 〖教程〗Winrm远程命令/WinrmCmd/端口复用后门/Windows密码爆破
  18. Python爬虫爬取哈利波特小说,并用数据可视化分析出场人物
  19. 外媒点赞,浪潮存储为何能入围全球最佳主存储供应商
  20. 物联网毕业设计 - 基于单片机的自动写字机器人

热门文章

  1. python中inspect的用法(这个难懂,后期再补)
  2. html 文字过多如何显示,当页面文字过多时,怎么用css使超出部分显示省略号?(单/多行代码演示)...
  3. 中间滑动 头部底部固定_固定抗震成品支座功能特点及作用
  4. CodeForces - 801C Voltage Keepsake 二分
  5. pypi的embeddings包踩坑
  6. ~~单链表(数据结构)
  7. 远程桌面——TeamViewer中“显示黑屏”的功能框无法使用
  8. Megcup 2017 决赛第一题 规则
  9. markdown如何修改为 微软雅黑 字体
  10. 小学生也能看懂的ArrayList底层原理