一 绘图函数概述
高级绘图函数
plot() #绘制散点图等多种图形,根据数据的类,调用相应的函数绘图
hist() #频率直方图
boxplot() #箱线图
stripchart() #点图
barplot() #柱状图
dotplot() #点图
piechart() #饼图
matplot() #数学图形
低级绘图函数
lines() #添加线
curve() #添加曲线
abline() #添加给定斜率的线
points() #添加点
segments() #折线
arrows() #箭头
axis() #坐标轴
box() #外框
title() #标题
text() #文字
mtext() #图边文字
绘图参数
#参数用在函数内部,在没有设定值时使用默认值。font = 字体
lty = 线类型
lwd = 线宽度
pch = 点的类型,
xlab = 横坐标
ylab = 纵坐标
xlim = 横坐标范围
ylim = 纵坐标范围#也可以对整个要绘制图形的各种参数进行设定
二 绘图实例:
1 #画箱线图
boxplot(day~type, data=bac, col="red", xlab="Virus", ylab="days")
day~type,以type为横轴,day为纵轴绘制箱线图。
data=bac 数据来源bac
col=“red” 箱线图为红色
xlab=“Virus” 横轴名称为Virus
ylab=“days” 纵轴名称为days例如:
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
参数更改
boxplot(count ~ spray, data = InsectSprays, col = "red", xlab="spray", ylab="counts")
查看boxplot的帮助文件
?boxplot
注:上、下边缘分别对应(去掉异常值后的)最大、最小值
2 #画散点图
#生成0到2之间的50个随机数,分别命名为x,y
x <- runif(50,0,2)
y <- runif(50,0,2)#绘图:将主标题命名为“散点图”, 横轴命名为”横坐标”, 纵轴命名为“纵坐标”
plot(x, y, main="散点图", xlab="横坐标", ylab="纵坐标")
text(0.5, 0.5, "text at (0.5, 0.5)")
abline(h=.5, v=0.5)
3 #分步绘图
#生成0到2之间的50个随机数,分别命名为x,y
x <- runif(50,0,2)
y <- runif(50,0,2)#1.打开绘图窗口,不绘制任何对象
plot(x, y, type="n", xlab="", ylab="", axes=F)#2.添加坐标点
points(x,y)#3.添加坐标轴
axis(1); axis(at=seq(0.2,1.8,0.2), side=2)#4.补齐散点图的边框
box()#5.添加标题、副标题、横轴说明、纵轴说明
title(main="Main title", sub="subtitle", xlab="x-label", ylab="y-label")
图 分布绘图过程
一页多图
#方法1
par()
par(mfrow=c(2,2))#方法2
#将图片p1,p2,p3,p4合并为一张图,cols=2定义两列
multiplot(p1, p2, p3, p4, cols=2)连接:http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/
在原有图形上添加元素
#举例:
x <- rnorm(100) # 生成随机数
hist(x,freq=F) # 绘制直方图
curve(dnorm(x),add=T) # 添加曲线#对以下命令,有疑惑
h <- hist(x, plot=F) # 绘制直方图
ylim <- range(0, h$density, dnorm(0)) #设定纵轴的取值范围
hist(x, freq=F, ylim=ylim) #绘制直方图
curve(dnorm(x),add=T,col="red") #添加曲线
海藻预测处理
#导入数据集#方式一:install.packages("DMwR")library(DMwR) #方式二:该数据集是我自己下载的,所以使用如下导入方式,同上一种方式得到的数据集一样
algae <- read.table("G:/DBfile/RdataSet/Analysis.txt", header = F,dec = '.', col.names = c('season', 'size', 'speed', 'mxPH', 'mn02','C1', 'NO3','NH4', 'oPO4', 'PO4', 'Chla','a1','a2','a3','a4','a5','a6','a7'),na.strings = c('XXXXXXX'))
#对数据集的处理
#查看数据前六行
head(algae)
#描述数据集摘要
summary(algae)
#画直方图
hist(algae$mxPH, probability = T)
#一页多图 直方图 Q-Q图
install.packages(qq.gam)
library(car)par(mfrow=c(1,2))
hist(algae$mxPH, probability = T, xlab = '', main='Histogram of maximun pH value', ylim=0:1)
lines(density(algae$mxPH, na.rm = T))
rug(jitter(algae$mxPH))
qqnorm(algae$mxPH, main='Normal QQ plot of maximun pH')
qqline(algae$mxPH)
#画箱线图
boxplot(algae$oPO4, ylab="Orthophosphate (oPO4)")
rug(jitter(algae$oPO4), size=2)
abline(h = mean(algae$oPO4, na.rm = T), lty = 2) #lty = 2指定线的类型,2代表虚线。na.rm = T不处理空值
#确定那些有离群的观测值
#方式一
plot(algae$NH4, xlab="")
abline(h = mean(algae$NH4, na.rm = T), lty=1)
abline(h = mean(algae$NH4, na.rm = T)+sd(algae$NH4, na.rm = T), lty=2)
abline(h = median(algae$NH4, na.rm = T), lty=3)
identify(algae$NH4)#方式二
plot(algae$NH4, xlab="")
clicked.lines <- identify(algae$NH4) #将点击的异常值在数据框中的行号,存入clicked.lines中
algae[clicked.lines,]#输出异常值所在行的数据信息
#研究分布如何依赖其他变量,使用包lattice
library(lattice)
bwplot(size~a1, data=algae, ylab = "river size", xlab="Algal A1")
图 海藻变量a1的条件箱图