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语言实战 (六) 基本图形方法的更多相关文章

  1. [读书笔记] R语言实战 (一) R语言介绍

    典型数据分析的步骤: R语言:为统计计算和绘图而生的语言和环境 数据分析:统计学,机器学习 R的使用 1. 区分大小写的解释型语言 2. R语句赋值:<- 3. R注释: # 4. 创建向量 c ...

  2. [读书笔记] R语言实战 (三) 图形初阶

    创建图形,保存图形,修改特征:标题,坐标轴,标签,颜色,线条,符号,文本标注. 1. 一个简单的例子 #输出到图形到pdf文件 pdf("mygrapg.pdf") attach( ...

  3. [读书笔记] R语言实战 (二) 创建数据集

    R中的数据结构:标量,向量,数组,数据框,列表 1. 向量:储存数值型,字符型,或者逻辑型数据的一维数组,用c()创建 **  R中没有标量,标量以单元素向量的形式出现 2. 矩阵:二维数组,和向量一 ...

  4. [读书笔记] R语言实战 (四) 基本数据管理

    1. 创建新的变量 mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) #方法一 mydata$sumx<-mydata$x1+mydata$x ...

  5. [读书笔记] R语言实战 (十三) 广义线性模型

    广义线性模型扩展了线性模型的框架,它包含了非正态的因变量分析 广义线性模型拟合形式: $$g(\mu_\lambda) = \beta_0 + \sum_{j=1}^m\beta_jX_j$$ $g( ...

  6. [读书笔记] R语言实战 (十四) 主成分和因子分析

    主成分分析和探索性因子分析是用来探索和简化多变量复杂关系的常用方法,能解决信息过度复杂的多变量数据问题. 主成分分析PCA:一种数据降维技巧,将大量相关变量转化为一组很少的不相关变量,这些无关变量称为 ...

  7. [读书笔记] R语言实战 (五) 高级数据管理

    1. 数值函数 1) 数学函数 2) 统计函数 3. 数据标准化 scale() 函数对矩阵或者数据框的指定列进行均值为0,标准化为1的标准化 mydata <- data.frame(c1=c ...

  8. 《R语言实战》读书笔记--为什么要学

    本人最近在某咨询公司实习,涉及到了一些数据分析的工作,用的是R语言来处理数据.但是在应用的过程中,发现用R很不熟练,所以再打算学一遍R.曾经花一个月的时间看过一遍<R语言编程艺术>,还用R ...

  9. R语言实战(第二版)-part 1笔记

    说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...

随机推荐

  1. Java包名称中通配符的含义

    "com.abc 表示的意义为:系统从com.abc这个包及其子孙包扫描组件 "com.abc.* 表示的意义为:系统从com.abc这个包的子孙包扫描组件

  2. BZOJ 3028 食物 (生成函数+数学题)

    题面:BZOJ传送门 题目让我们求这些物品在合法范围内任意组合,一共组合出$n$个物品的方案数 考虑把每种食物都用生成函数表示出来,然后用多项式乘法把它们乘起来,第$n$项的系数就是方案数 汉堡:$1 ...

  3. [模板] zkw线段树

    zkw线段树 code1简单版本 code2差分版本(暂无) code1:(有注释) //By Menteur_Hxy #include<cstdio> #include<iostr ...

  4. Django用户认证(四)自定义认证Customizing authentication

    原文:https://www.cnblogs.com/linxiyue/p/4061044.html 扩展已有的用户模型Extending the existing User model 有两种方法来 ...

  5. easy-ui采坑事件

    新用户首次登陆修改密码 imput标签中使用easyui自带的class="easyui-passwordbox"可以是密码隐藏变成黑点但是无法禁用输入法,然后果断的加了一个typ ...

  6. MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令

    一.CMD中经常使用mysql相关命令 mysql -D, --database=name  //打开数据库 --delimiter=name  //指定分隔符 -h, --host=name  // ...

  7. Qt on Android:资源文件系统qrc与assets

    使用 Qt 为 Android 开发应用时,有时我们的应用会携带一些资源文件,如 png . jpg 等,也可能有一些配置文件,如 xml 等.这些文件放在哪里呢? 有两种方式: qrc assets ...

  8. JAVA实现远程SSH连接linux并运行命令

    博客转移到http://blog.codeconch.com

  9. [SCOI 2005] 栅栏

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1082 [算法] 首先二分“最多得到的符合条件的木板数”,检验时可以使用DFS,但是, ...

  10. 【BZOJ 1878】 HH的项链

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1878 [算法] 显然,在线算法是不可做的,考虑离线算法 笔者的做法是莫队算法,时间复 ...