前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言与数据分析之二:绘图

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

作者头像
小莹莹
发布2018-04-24 11:52:45
1.2K0
发布2018-04-24 11:52:45
举报
文章被收录于专栏:PPV课数据科学社区

图形展示是最高效且形象的数据描述手段,因此巧妙的图像展示是高质量数据分析报告的必备内容,因此强大的图形展示功能也是统计分析软件的必备功能。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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PPV课数据科学社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本统计–单指标
  • 基本统计–多指标
  • 地图专栏
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档