[读书笔记] R语言实战 (六) 基本图形方法
1. 条形图 barplot()
#载入vcd包
library(vcd)
#table函数提取各个维度计数
counts <- table(Arthritis$Improved)
counts
#绘制简单Improved条形图
#1行2列
par(mfrow=c(1,2))
barplot(counts, main = "simple Bar plot", xlab = "Improved",ylab = "Frequency")
#绘制水平条形图 horiz = TRUE
barplot(counts,main = "simple Bar plot", xlab = "Frequency",ylab = "Improved",horiz=TRUE)
#如果绘制的是一个有序因子,可以使用plot()函数快速创建一幅垂直条形图
#1行1列
par(mfrow=c(1,1))
plot(Arthritis$Improved,xlab = "Frequency",ylab = "Improved",horiz=TRUE)
#如果要绘制的变量是一个矩阵而不是一个向量,将会绘制堆砌条形图或者分组条形图
#生成Improved和Treatment列联表
counts <- table(Arthritis$Improved,Arthritis$Treatment)
counts
#绘制堆砌图
barplot(counts,main = "Stacked Bar plot",xlab = "Treatment",ylab = "Frequency",col = c('red','yellow','green'),legend = rownames(counts))
#绘制分组条形图
barplot(counts,main = "Grouped Bar plot",xlab = "Treatment",ylab = "Frequency",col = c('red','yellow','green'),legend = rownames(counts),beside = TRUE)
#条形图微调
#增加y边界大小
par(mar = c(5,8,4,2))
#las=2旋转条形标签
par(las = 2)
counts <- table(Arthritis$Improved)
#cex.names= 0.8缩小字体的大小
barplot(counts,main="Treatment Outcomes",horiz = TRUE,cex.names=0.8,names.arg = c("No Improvement","Some Improvement","Marked Imporvement"))
2. 饼图:饼图在商业世界中无所不在,然而多数统计学家,包括R相应文档的编写者,都对它持否定态度。相对于饼图,他们更推荐使用条形图或点图,因为相对于
面积,人们对长度的判断更为精确 pie() pie3D()
par(mfrow=c(2,2))
slices <- c(10,12,12.4,16,8)
lbls <- c("US","UK","Austrialia","Germany","France")
pie(slices,labels=lbls,main="simple Chart")
pct <- round(slices/sum(slices)*100)
#拼接字符串和比例数值
lbls2 <- paste(lbls," ", pct,"%",sep = "")
lbls2
pie(slices,labels=lbls2,col=rainbow(length(lbls2)),main="Pie chart with percentage")
#载入ploirix包
library(plotrix)
#画简单3D图
pie3D(slices,labels=lbls,explode = 0.4,main = "3D pei chart")
#从表格创建饼图
#table取得region的计数表
mytable <- table(state.region)
#names 函数取得列名,然后将列名和相应的计数拼接在一起
lbls3 <- paste(names(mytable),'\n',mytable,sep="")
pie(mytable,labels=lbls3,main="pie chart from a table\n{with sample sizes}")
3. 直方图 :可以展示连续变量的分布. hist(x,breaks=, freq = )
x是一个由数据值组成的数值向量,参数freq = FALSE表示根据概率密度而不是频数绘制图形,参数breaks用于控制数组的数量.
par(mfrow = c(2,2))
#简单直方图
hist(mtcars$mpg)
#指定组数和颜色
hist(mtcars$mpg,breaks=12,col='red',xlab="Miles Per Gallon",main="Colored histogram with 12 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)
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()
4. 核密度图:核密度估计是用于估计随机变量概率密度函数的非参数方法
#当前图像参数列表
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,1))
#默认条件创建
d <- density(mtcars$mpg)
plot(d)
d <- density(mtcars$mpg)
#添加标题和曲线
plot(d,main="kernel Density of Miles per Gallon")
polygon(d,col='red',border="blue")
#添加棕色轴须图
rug(mtcars$mpg,col="brown")
#可比较的核密度函数
#线宽为双倍
#还原初始设置
par(opar)
par(lwd=2)
library(sm)
attach(mtcars)
sm.density.compare(mpg,cyl,xlab='Miles per gallon')
cyl.f <- factor(cyl,levels=c(4,6,8),labels=c("4 cylinder","6 cylinder","8 cylinder"))
title(main="MPG Distribution by Car Cylinders")
#创建颜色向量
colfill <- c(2:(1+length(levels(cyl.f))))
legend(locator(1),levels(cyl.f),fill=colfill)
detach(mtcars)
5. 箱线图:boxplot()
boxplot(mtcars$mpg,main="Box plot",ylab="Miles per gallon")
#并列箱线图跨列比较
boxplot(mpg~cyl,data=mtcars,main="Car Mileage Data",xlab="Number of Cylinders",ylab="Miles per gallon")
#图中可以看到四缸,六缸,八缸耗油中位数不同
6. 点图:在简单水平刻度上绘制大量有标签值的方法, dotchart()
dotchart(mtcars$mpg,labels=row.names(mtcars),cex=.7,main="Gas Mileage for Car Models",xlab="Miles Per Gallon")
#点图通常在经过排序并且分组变量被不同符号和颜色区分开最有用
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]<-'dark green'
dotchart(x$mpg,labels=row.names(x),cex=.7,group=x$cyl,gcolor="black",color=x$color,pch=19,
main="Gas Mileage for Car models\n grouped by cylinder",xlab='Miles Per gallon')
[读书笔记] R语言实战 (六) 基本图形方法的更多相关文章
- [读书笔记] R语言实战 (一) R语言介绍
典型数据分析的步骤: R语言:为统计计算和绘图而生的语言和环境 数据分析:统计学,机器学习 R的使用 1. 区分大小写的解释型语言 2. R语句赋值:<- 3. R注释: # 4. 创建向量 c ...
- [读书笔记] R语言实战 (三) 图形初阶
创建图形,保存图形,修改特征:标题,坐标轴,标签,颜色,线条,符号,文本标注. 1. 一个简单的例子 #输出到图形到pdf文件 pdf("mygrapg.pdf") attach( ...
- [读书笔记] R语言实战 (二) 创建数据集
R中的数据结构:标量,向量,数组,数据框,列表 1. 向量:储存数值型,字符型,或者逻辑型数据的一维数组,用c()创建 ** R中没有标量,标量以单元素向量的形式出现 2. 矩阵:二维数组,和向量一 ...
- [读书笔记] R语言实战 (四) 基本数据管理
1. 创建新的变量 mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) #方法一 mydata$sumx<-mydata$x1+mydata$x ...
- [读书笔记] R语言实战 (十三) 广义线性模型
广义线性模型扩展了线性模型的框架,它包含了非正态的因变量分析 广义线性模型拟合形式: $$g(\mu_\lambda) = \beta_0 + \sum_{j=1}^m\beta_jX_j$$ $g( ...
- [读书笔记] R语言实战 (十四) 主成分和因子分析
主成分分析和探索性因子分析是用来探索和简化多变量复杂关系的常用方法,能解决信息过度复杂的多变量数据问题. 主成分分析PCA:一种数据降维技巧,将大量相关变量转化为一组很少的不相关变量,这些无关变量称为 ...
- [读书笔记] R语言实战 (五) 高级数据管理
1. 数值函数 1) 数学函数 2) 统计函数 3. 数据标准化 scale() 函数对矩阵或者数据框的指定列进行均值为0,标准化为1的标准化 mydata <- data.frame(c1=c ...
- 《R语言实战》读书笔记--为什么要学
本人最近在某咨询公司实习,涉及到了一些数据分析的工作,用的是R语言来处理数据.但是在应用的过程中,发现用R很不熟练,所以再打算学一遍R.曾经花一个月的时间看过一遍<R语言编程艺术>,还用R ...
- R语言实战(第二版)-part 1笔记
说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...
随机推荐
- java 比较两个时间大小
Date d1 = new Date(System.currentTimeMillis()-1000); Date d2 = new Date(System.currentTimeMillis()); ...
- Virtual address cache memory, processor and multiprocessor
An embodiment provides a virtual address cache memory including: a TLB virtual page memory configure ...
- Keyboard的显示与隐藏
一个控制键盘显示与隐藏的工具类分享给大家 public class KeyBoardTool { /** * 假设输入法在窗体上已经显示.则隐藏.反之则显示 * @param context */ p ...
- ios网络学习------3 用非代理方法实现异步post请求
#pragma mark - 这是私有方法.尽量不要再方法中直接使用属性,由于一般来说属性都是和界面关联的,我们能够通过參数的方式来使用属性 #pragma mark post登录方法 -(void) ...
- Fibbonacci Number(杭电2070)
/*Fibbonacci Number Problem Description Your objective for this question is to develop a program whi ...
- SVN打tag
SVN打tag是一个非经常常使用的功能,要谈打tag,还得从SVN官方推荐的文件夹结构说起.SVN官方推荐在一个版本号库的根文件夹下先建立trunk.branches.tags这三个文件夹 ...
- 王立平--TF卡
最终知道TF卡是什么了... TF卡又称microSD,是一种极细小的快闪存储器卡,由SanDisk(闪迪)公司发明创立. 这样的卡主要于手机使用.但因它拥有体积极小的长处,随着不断提升的容量. 它慢 ...
- luogu 3952 时间复杂度(模拟)
时间复杂度 这道题从两个月前开始做,一直没做出来,最后今晚决心一定要做出来.于是开始认真的在打草纸上写思路,最后在AC的那一刻,差点哭了出来!! 题目大意 这个自己看吧,noip2017的D1T2 s ...
- POJ 1471 模拟?
题意:求最大无坏点三角形 思路: 模拟? (为什么我模拟过了...) 有人用 DP,有人用 搜索... // by SiriusRen #include <cstdio> #include ...
- 编写高质量的Makefile
源地址 :http://blog.csdn.net/maopig/article/details/6801749 一.前言 回想自己的第一个Makefile,是这个样子的 CODE hello:hel ...