R语言与数据分析之二:绘图

图形展示是最高效且形象的数据描述手段,因此巧妙的图像展示是高质量数据分析报告的必备内容,因此强大的图形展示功能也是统计分析软件的必备功能。R语言提供了强大的吐血展示功能。今天我由简单到复杂分别和小伙伴们分享如何用R语言画出各位想要的图形。

首先罗列下所有可选图形:

1、直方图(hist());2、散点图(plot());3、柱状图(barplot());4、饼图(pie());5、箱线图(boxplot());6、星相图(stars());7、脸谱图(faces());8、茎叶图(stem());9、QQ图(qqnorm());10、 地图包maps、mapdata、geosphere

为了方便地进行图形展示,我们创建一个数据场景,假设我们需要统计学生的3门课的考试情况。我们分别生成学号、高等数学(80到100的均匀分布)、线性代数(均值80,标准差为7的正态分布)和运筹学(均值83,标准差18的正态分布)三科成绩。相应的语句为:

  1. Num=seq(102001,102100)
  2. X1=round(runif(100,min=80,max=100))
  3. X2=round(rnorm(100,mean=80,sd=7))
  4. X3=round(rnorm(100,mean=83,sd=18))

基本统计–单指标

考虑到所有的成绩不能超过100分,因此需要将随机生成的成绩中高于100分的改为100分并将最终修正后的所有成绩连同学号存入数据框。

  1. X2[which(X2>100)]=100
  2. X3[which(X3>100)]=100
  3. X=data.frame(Num,X1,X2,X3)

分别画出高等数学成绩的直方图、高等数学和线性代数的相关关系的散点图,运筹学成绩的柱状图和饼图,来观看各科成绩的分布情况。相应语句如下:

  1. hist(X$X1)
  2. plot(X1,X2)
  3. barplot(table(X$X1))
  4. pie(table(X$X1))

基本统计–多指标

接着我们将三科成绩用两种箱线图画出来,箱线图可以更加清楚的解释数据的分布情况,和数据的集中区域。命令如下:

  1. boxplot(X$X1, X$X2, X$X3)
  2. boxplot(X[2:4],col=c("red","green","blue"),notch=T)

为了更方便的观测单位个体的特性,R提供了星相图、脸谱图(根据脸的形状和眼睛的大小来反映数据)揭示每个个体属性上的差异,具体命令如下:

  1. stars(X)
  2. install.packages("TeachingDemos")
  3. library("TeachingDemos")
  4. faces2(X)

在形象化展示数据方面,R还提供了茎叶图控我们观看数据分布情况,命令如下:

  1. stem(X$X2)

R语言还提供了判断数列是否服从正态分布的形象展示图形,可以简单的借助肉眼判断,当散落的点的分布越接近直线,则数列的分布越接近正态分布。命令如下:

  1. qqnorm(X3)
  2. qqline(X3)

地图专栏

最后为大家介绍R语言提供的丰富的地图包功能,首先需要安装maps包,可以用来画出漂亮的世界地图,供我们做社交网络分析。遗憾的是该包不包含中国地图包,如若需要绘制中国地图,以方面建议加载mapdata包,另一方面,强烈建议谷歌贡献的ggmap包,相关命令如下:

  1. library(maps)
  2. map("world",fill=TRUE,col=rainbow(200),ylim=c(-60,90),mar=c(0,0,0,0))
  1. library(mapdata)
  2. map("china",col="red4",ylim=c(18,54),panel.first=grid())

最后以一个航空公司航线分布案例,结束今天的R语言绘图介绍,首先我先导入外部数据,然后构造航线,最终在图形中展示出来。命令如下:

  1. airports <- read.csv("http://datasets.flowingdata.com/tuts/maparcs/airports.csv", header=TRUE)
  2. flights <- read.csv("http://datasets.flowingdata.com/tuts/maparcs/flights.csv", header=TRUE, as.is=TRUE)
  3. map("world",col="#f2f2f2",fill=TRUE,bg="white",lwd=0.5)
  4. fsub <- flights[flights$airline==”AA”,]
  5. for (j in 1:length(fsub$airline)) {
  6. air1 <- airports[airports$iata == fsub[j,]$airport1,]
  7. air2 <- airports[airports$iata == fsub[j,]$airport2,]
  8. inter <- gcIntermediate(c(air1[1,]$long, air1[1,]$lat), c(air2[1,]$long, air2[1,]$lat), n=100, addStartEnd=TRUE)
  9. lines(inter, col="black", lwd=0.8)
  10. }

至此有关R语言的绘图的内容全部结束了,希望对各位小伙伴们有帮助

版权声明:本文已获得作者授权,未经作者允许不得转载。原文链接:

http://blog.csdn.net/howardge/article/details/41598239

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

递归神经网络不可思议的有效性(下)

18430
来自专栏PPV课数据科学社区

数据挖掘比赛通用框架

作者|穆文 报名啦CDA数据分析师认证培训Level 1 国内权威的数据分析师系统 培养学员超过上千人理论结合实际 更有多重福利提供 点击文末“阅读原文”...

59760
来自专栏IT派

干货 | 机器学习在web攻击检测中的应用实践

岳良, 携程信息安全部高级安全工程师。2015年加入携程,主要负责渗透测试,安全评审,安全产品设计。 一、背景 在web应用攻击检测的发展历史中,到目前为止...

601110
来自专栏深度学习入门与实践

【深度学习系列】PaddlePaddle垃圾邮件处理实战(一)

49540
来自专栏数据小魔方

excel数据分析工具库系列三|趋势平滑

今天要跟大家分享的内容是数据分析工具库系列三——趋势平滑! 在时间序列数据中,往往存在很多周期性趋势以及随机干扰因素,给我们的分析工作工作带来很多不便。 当然有...

36360
来自专栏CreateAMind

深度神经网络惊人的&#39;注意力&#39;能力-附论文解读

9020
来自专栏智能计算时代

使用TensorFlow实现神经网络的介绍

介绍 如果您一直在追踪数据科学/机器学习,您将不会错过深度学习和神经网络周围的动态。组织正在寻找具有深度学习技能的人,无论他们在哪里。从竞争开始到开放采购项目和...

35440
来自专栏机器之心

贾扬清撰文详解Caffe2:从强大的新能力到入门上手教程

选自 Nvidia Blog 作者:Aaron Markham、贾扬清 机器之心编译 昨天,Facebook 推出了 Caffe2,一个兼具表现力、速度和模块性...

35630
来自专栏AI科技大本营的专栏

机器学习不神秘!手把手教你用R语言打造文本分类器

简单安装几个R软件包,你就直接在自己电脑上打造出一个文本分类器,用进行机器来评估人类写作。 本文是一篇极简的上手教程,它想用清晰明了的步骤告诉读者,机器学习不...

388160
来自专栏月色的自留地

从锅炉工到AI专家(2)

21640

扫码关注云+社区

领取腾讯云代金券