吴裕雄--天生自然 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 ...
- 吴裕雄--天生自然 R语言开发学习:基本图形(续二)
#---------------------------------------------------------------# # R in Action (2nd ed): Chapter 6 ...
随机推荐
- PAT Basic 1007 素数对猜想 (20) [数学问题-素数]
题目 让我们定义 dn 为:dn = pn+1 – pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想"认为"存在⽆穷多对 ...
- Java 10按钮设计(awt)
/** * 2019年8月9日08:03:41 * 目的:利用Java设计10个按钮 * @author 张涛 * */ //导入awt包 import java.awt.*; import java ...
- 基于node的前后端分离初识
久闻node的大名,先后也看过node的文档,但是,总是碍于没有挑起我的G点,所以实际codeing的例子都没有.最近,突然很有兴致,想把原有用页面ajax渲染的页面采用服务端node来渲染,研究了两 ...
- 优秀的github java项目
转载:https://www.zhihu.com/question/24834285/answer/251369977 biezhi/blade:先推荐下自己的哈哈,一款轻量级.高性能.简洁优雅的MV ...
- 迅为iTOP-开发板-驱动-can和rfid配置
在迅为开发板中,在 4412,4418 以及 6818 中,有的开发板默认配置 RFID,有的默认配 置 CAN 驱动(IMX6 默认都配置). 本文档介绍如何配置 CAN 和 RFID 的驱动. 截 ...
- Python 爬虫 爬取图片入门
爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 用户看到的网页实质是由 HTML 代码构成的,爬 ...
- 四、Shell脚本高级编程实战第四部
一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...
- 理解python的可变参数
以 str.format(*args,**kwargs) 为例. "type1:{},{},{},{}_type2:{a},{b},{c},{d}".format('a',2,*[ ...
- 解决ubuntu16.04启动时长时间陷入紫屏
今天我的ubuntu系统进不去,一启动就陷入紫屏的死循环中,重装了两遍系统还是一样进不去,后来上网查找了各种解决办法,网上都说是显卡的问题,我也不懂什么意思.试了几种方法,终于解决了这个问题,在这里记 ...
- Angular开发者指南(三)数据绑定
数据绑定 AngularJS应用程序中的数据绑定是模型和视图组件之间的数据的自动同步. AngularJS实现数据绑定的方式可以将模型视为应用程序中的单一来源. 视图是模型在任何时候的投影. 当模型更 ...