R语言画图函数

本文详细介绍了R语言中的绘图函数,包括高级绘图函数如plot(), hist(), boxplot()等,以及低级绘图函数如lines(), curve(), abline()等。通过实例展示了箱线图、散点图的绘制过程,并提供了一页多图、直方图、Q-Q图的绘制技巧。同时,文章还介绍了如何处理数据集,进行数据预处理和统计分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一  绘图函数概述

高级绘图函数

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的条件箱图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值