吴裕雄--天生自然 R语言开发学习:基本图形(续二)
- #---------------------------------------------------------------#
- # R in Action (2nd ed): Chapter 6 #
- # Basic graphs #
- # requires packages vcd, plotrix, sm, vioplot to be installed #
- # install.packages(c("vcd", "plotrix", "sm", "vioplot")) #
- #---------------------------------------------------------------#
- par(ask=TRUE)
- opar <- par(no.readonly=TRUE) # save original parameter settings
- library(vcd)
- counts <- table(Arthritis$Improved)
- counts
- # Listing 6.1 - Simple bar plot
- # vertical barplot
- barplot(counts,
- main="Simple Bar Plot",
- xlab="Improvement", ylab="Frequency")
- # horizontal bar plot
- barplot(counts,
- main="Horizontal Bar Plot",
- xlab="Frequency", ylab="Improvement",
- horiz=TRUE)
- # obtain 2-way frequency table
- library(vcd)
- counts <- table(Arthritis$Improved, Arthritis$Treatment)
- counts
- # Listing 6.2 - Stacked and grouped bar plots
- # stacked barplot
- barplot(counts,
- main="Stacked Bar Plot",
- xlab="Treatment", ylab="Frequency",
- col=c("red", "yellow","green"),
- legend=rownames(counts))
- # grouped barplot
- barplot(counts,
- main="Grouped Bar Plot",
- xlab="Treatment", ylab="Frequency",
- col=c("red", "yellow", "green"),
- legend=rownames(counts), beside=TRUE)
- # Listing 6.3 - Bar plot for sorted mean values
- states <- data.frame(state.region, state.x77)
- means <- aggregate(states$Illiteracy, by=list(state.region), FUN=mean)
- means
- means <- means[order(means$x),]
- means
- barplot(means$x, names.arg=means$Group.1)
- title("Mean Illiteracy Rate")
- # Listing 6.4 - Fitting labels in bar plots
- par(las=2) # set label text perpendicular to the axis
- par(mar=c(5,8,4,2)) # increase the y-axis margin
- counts <- table(Arthritis$Improved) # get the data for the bars
- # produce the graph
- barplot(counts,
- main="Treatment Outcome", horiz=TRUE, cex.names=0.8,
- names.arg=c("No Improvement", "Some Improvement", "Marked Improvement")
- )
- par(opar)
- # Spinograms
- library(vcd)
- attach(Arthritis)
- counts <- table(Treatment,Improved)
- spine(counts, main="Spinogram Example")
- detach(Arthritis)
- # Listing 6.5 - Pie charts
- par(mfrow=c(2,2))
- slices <- c(10, 12,4, 16, 8)
- lbls <- c("US", "UK", "Australia", "Germany", "France")
- pie(slices, labels = lbls,
- main="Simple Pie Chart")
- pct <- round(slices/sum(slices)*100)
- lbls <- paste(lbls, pct)
- lbls <- paste(lbls,"%",sep="")
- pie(slices,labels = lbls, col=rainbow(length(lbls)),
- main="Pie Chart with Percentages")
- library(plotrix)
- pie3D(slices, labels=lbls,explode=0.1,
- main="3D Pie Chart ")
- mytable <- table(state.region)
- lbls <- paste(names(mytable), "\n", mytable, sep="")
- pie(mytable, labels = lbls,
- main="Pie Chart from a dataframe\n (with sample sizes)")
- par(opar)
- # Fan plots
- library(plotrix)
- slices <- c(10, 12,4, 16, 8)
- lbls <- c("US", "UK", "Australia", "Germany", "France")
- fan.plot(slices, labels = lbls, main="Fan Plot")
- # Listing 6.6 - Histograms
- # simple histogram 1
- hist(mtcars$mpg)
- # colored histogram with specified number of bins
- hist(mtcars$mpg,
- breaks=12,
- col="red",
- xlab="Miles Per Gallon",
- main="Colored histogram with 12 bins")
- # colored histogram with rug plot, frame, and specified number of bins
- hist(mtcars$mpg,
- freq=FALSE,
- breaks=12,
- col="red",
- xlab="Miles Per Gallon",
- main="Histogram, rug plot, density curve")
- rug(jitter(mtcars$mpg))
- lines(density(mtcars$mpg), col="blue", lwd=2)
- # histogram with superimposed normal curve (Thanks to Peter Dalgaard)
- x <- mtcars$mpg
- h<-hist(x,
- breaks=12,
- col="red",
- xlab="Miles Per Gallon",
- main="Histogram with normal curve and box")
- xfit<-seq(min(x),max(x),length=40)
- yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))
- yfit <- yfit*diff(h$mids[1:2])*length(x)
- lines(xfit, yfit, col="blue", lwd=2)
- box()
- # Listing 6.7 - Kernel density plot
- d <- density(mtcars$mpg) # returns the density data
- plot(d) # plots the results
- d <- density(mtcars$mpg)
- plot(d, main="Kernel Density of Miles Per Gallon")
- polygon(d, col="red", border="blue")
- rug(mtcars$mpg, col="brown")
- # Listing 6.8 - Comparing kernel density plots
- par(lwd=2)
- library(sm)
- attach(mtcars)
- # create value labels
- cyl.f <- factor(cyl, levels= c(4, 6, 8),
- labels = c("4 cylinder", "6 cylinder", "8 cylinder"))
- # plot densities
- sm.density.compare(mpg, cyl, xlab="Miles Per Gallon")
- title(main="MPG Distribution by Car Cylinders")
- # add legend via mouse click
- colfill<-c(2:(2+length(levels(cyl.f))))
- cat("Use mouse to place legend...","\n\n")
- legend(locator(1), levels(cyl.f), fill=colfill)
- detach(mtcars)
- par(lwd=1)
- # parallel box plots
- boxplot(mpg~cyl,data=mtcars,
- main="Car Milage Data",
- xlab="Number of Cylinders",
- ylab="Miles Per Gallon")
- # notched box plots
- boxplot(mpg~cyl,data=mtcars,
- notch=TRUE,
- varwidth=TRUE,
- col="red",
- main="Car Mileage Data",
- xlab="Number of Cylinders",
- ylab="Miles Per Gallon")
- # Listing 6.9 - Box plots for two crossed factors
- # create a factor for number of cylinders
- mtcars$cyl.f <- factor(mtcars$cyl,
- levels=c(4,6,8),
- labels=c("","",""))
- # create a factor for transmission type
- mtcars$am.f <- factor(mtcars$am,
- levels=c(0,1),
- labels=c("auto","standard"))
- # generate boxplot
- boxplot(mpg ~ am.f *cyl.f,
- data=mtcars,
- varwidth=TRUE,
- col=c("gold", "darkgreen"),
- main="MPG Distribution by Auto Type",
- xlab="Auto Type")
- # Listing 6.10 - Violin plots
- library(vioplot)
- x1 <- mtcars$mpg[mtcars$cyl==4]
- x2 <- mtcars$mpg[mtcars$cyl==6]
- x3 <- mtcars$mpg[mtcars$cyl==8]
- vioplot(x1, x2, x3,
- names=c("4 cyl", "6 cyl", "8 cyl"),
- col="gold")
- title("Violin Plots of Miles Per Gallon")
- # dot chart
- dotchart(mtcars$mpg,labels=row.names(mtcars),cex=.7,
- main="Gas Mileage for Car Models",
- xlab="Miles Per Gallon")
- # Listing 6.11 - Dot plot grouped, sorted, and colored
- x <- mtcars[order(mtcars$mpg),]
- x$cyl <- factor(x$cyl)
- x$color[x$cyl==4] <- "red"
- x$color[x$cyl==6] <- "blue"
- x$color[x$cyl==8] <- "darkgreen"
- dotchart(x$mpg,
- labels = row.names(x),
- cex=.7,
- pch=19,
- groups = x$cyl,
- gcolor = "black",
- color = x$color,
- main = "Gas Mileage for Car Models\ngrouped by cylinder",
- xlab = "Miles Per Gallon")
吴裕雄--天生自然 R语言开发学习:基本图形(续二)的更多相关文章
- 吴裕雄--天生自然 R语言开发学习:图形初阶(续二)
# ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...
- 吴裕雄--天生自然 R语言开发学习:图形初阶(续一)
# ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...
- 吴裕雄--天生自然 R语言开发学习:图形初阶
# ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...
- 吴裕雄--天生自然 R语言开发学习:R语言的安装与配置
下载R语言和开发工具RStudio安装包 先安装R
- 吴裕雄--天生自然 R语言开发学习:数据集和数据结构
数据集的概念 数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量.表2-1提供了一个假想的病例数据集. 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和 ...
- 吴裕雄--天生自然 R语言开发学习:导入数据
2.3.6 导入 SPSS 数据 IBM SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc 包中的spss.get()函数.函数spss.get() ...
- 吴裕雄--天生自然 R语言开发学习:使用键盘、带分隔符的文本文件输入数据
R可从键盘.文本文件.Microsoft Excel和Access.流行的统计软件.特殊格 式的文件.多种关系型数据库管理系统.专业数据库.网站和在线服务中导入数据. 使用键盘了.有两种常见的方式:用 ...
- 吴裕雄--天生自然 R语言开发学习:R语言的简单介绍和使用
假设我们正在研究生理发育问 题,并收集了10名婴儿在出生后一年内的月龄和体重数据(见表1-).我们感兴趣的是体重的分 布及体重和月龄的关系. 可以使用函数c()以向量的形式输入月龄和体重数据,此函 数 ...
- 吴裕雄--天生自然 R语言开发学习:基础知识
1.基础数据结构 1.1 向量 # 创建向量a a <- c(1,2,3) print(a) 1.2 矩阵 #创建矩阵 mymat <- matrix(c(1:10), nrow=2, n ...
随机推荐
- Exit of “> ” mode in Unix shell
https://unix.stackexchange.com/questions/118209/exit-of-mode-in-unix-shell ^D will only work if a pr ...
- Maven高级:01.maven分模块构建&&02.私服的应用
IntelliJ IDEA 2018.3.6 x64 07 Maven高级:01.maven分模块构建(上) 07 Maven高级:01.maven分模块构建(中) 07 Maven高级:01.mav ...
- Java之线程通信的方法
/** * 线程通信的例子:使用两个线程打印 1-100.线程1, 线程2 交替打印 * * 涉及到的三个方法: * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器. * no ...
- Linux 标准IO库介绍
1.标准IO和文件IO有什么区别? (1).看起来使用时都是函数,但是:标准IO是C库函数,而文件IO是Linux系统的API. (2).C语言库函数是由API封装而来的.库函数内部也是通过调用API ...
- JavaScript学习笔记 - 进阶篇(6)- JavaScript内置对象
什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...
- Python笔记_第二篇_面向过程_第二部分_6.包
1. 包: 思考:如果不同人的编写模块同名了怎么办? 解决:为了解决模块命名的冲突,引入了按目录来组织模块的方法,这个目录成为“包” 特点:引入了包以后,只要丁顶层的包,不与其他人发生冲突,那么模块都 ...
- redhat6.5 升级内核
1.导入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装elrepo的yum源 rpm -Uvh https:// ...
- Spring Boot从入门到放弃-Spring Boot 整合测试
站长资讯摘要:使用Spring Boot 整合测试,对Controller 中某个方法进行测试或者对Service,Mapper等进行测试,不需要运行项目即可查看运行结果是否和期望值相同,Spring ...
- Linux Centos下MySQL主从Replication同步配置(一主一从)
MySQL 主从复制概念MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据 ...
- liquibase使用教程
在项目中引入liquibase过程: 1.父项目 pom.xml 中添加依赖 <dependencies> <dependency> <groupId>mysql& ...