R语言绘图与可视化第六章总结
R语言绘图与可视化
- 导入
- windows函数
- 调整绘图参数
- 调整颜色
- 调整标签与标题文字
- 其他自定义元素
- 坐标轴
- 次要刻度线
- 网格线
- 叠加图形
- 图例(从上面的叠加图形代码执行后开始)
- 标注
- 描述性统计图
- 柱状图
- 饼图
- 直方图
- 箱线图
导入
x <- 1 : 20
y <- x ^ 2
#参数介绍-----------------------
#1. type :表示绘图类型
#2. main :表示图像名称
plot(x, y, type = 'l', main = "y = x ^ 2图像")

windows函数
打开一个新的窗口作图,不改变原窗口图形
windows()
plot(x, y, type = 'l', main = "y = x ^ 2图像")
# 图形导出
png("plot.png")
x <- 1 : 20
y <- x ^ 2
plot(x, y)
dev.off() # 保存图像
调整绘图参数
- 通过par函数指定图像参数的值
opar <- par(no.readonly = T)
par(lty = 2, pch = 15)
x <- 1 : 20
y <- x ^ 2
plot(x, y)
par(opar) #参数还原
- 在plot函数使用时添加参数

x <- 1:20; y <- x ^ 2
plot(x, y, type = "b", lty = 2, pch = 15, cex = 0.5, lwd = 2)
调整颜色
-
颜色参数介绍

-
颜色选择方法

colors() # 查看颜色编号palette() #查看调色板
pal = palette()
par(mar = c(1, 2, 1, 2))
pie(rep(1, length(pal)), labels = sprintf("%d (%s)", seq_along(pal),pal), col = pal) # pie函数先做了解,下面会讲饼图
#rainbow(n) : 内置函数,返回一个连续颜色向量
rainbow(3) -> pal
pie(rep(1, length(pal)), labels = sprintf("%d (%s)", seq_along(pal), pal), col = pal)
调整标签与标题文字
之前我们在plot函数参数时用main函数设置了主题,下面是对title的进一步优化。
# title()函数 title(main = "", sub = "", xlab = "", ylab = "", line = "", outer = F, col.mian, col.sub, cex.main, cex.sub ...)1. 标题/副标题:title / sub
标签参数分为2. 坐标轴标题 :xlab / ylabx <- 1 : 20; y <- x ^ 2
plot(x,y,ann = F, type = 'b', lty = 2) #ans来禁用plot()函数中设置的标题标签, 比如我这里加上main = "123"参数是无效的
title(main = "y = x ^ 2",col.main = "red",col.sub = "brown",col.lab = "navy",cex.main = 2,cex.sub = 1.25,xlab = "自变量",ylab = "因变量",sub = "图一",font.sub = 3
)

其他自定义元素
坐标轴
axis(side, at = , lables = , pos = , lty = , col = , las = , tck = ,...)

次要刻度线
install.packages("Hmisc")
library(Hmisc)
x <- 1 : 20
y <- x ^ 2
plot(x, y, type = 'l', main = "y = x ^ 2图像")
minor.tick(nx = 5, ny = 4, tick.ratio = 0.5) # nx: x轴次要刻度线数目, ny: y轴次要刻度线数目,tick.ratio: 次要刻度线长度与主要刻度线长度比例)
网格线
abline(h = seq(0, 400, by = 20), v = seq(0, 20, by = 1), lty = 2, col = "lightgray") # h: 水平线位置, v: 垂直线位置
叠加图形
windows()
x <- 1 : 20
y <- x ^ 2
plot(x, y, type = 'l', main = "y = x ^ 2图像")
points(1 : 20, seq(1, 200, length.out = 20), col = "blue", pch = 17) # 加点
lines(1 : 20, seq(1, 200, length.out = 20), col = "red") # 加线
abline(v = 10, h = 100, lty = 2 )
...
图例(从上面的叠加图形代码执行后开始)
legend(x = 0.5, y = 385, c("y = x ^ 2", "y = 10 * x"), col = c("black", "red"), lty = c(1,1), pch = c(1, 2), title = "图例", text.col = "blue", bg = "lightgray")参数有很多,不必都记住,现用现找。

标注
text()函数是在绘图区内部进行标注
mtext()函数是在绘图区外部进行标注
x <- 1 : 20
y <- x ^ 2
plot(x, y, type = 'l', main = "y = x ^ 2图像")
text(15, 250, "这是一个标注", col = "red", cex = 1.5) # text(x坐标, y坐标, "标注内容", 其他参数)
mtext("这是外部标注", side = seq(1,4), line = 0, col = "blue", cex = 0.5) #line表示距离绘图区的行数, side表示标注位置,1-下,2-左,3-上,4-右
text(13,200, expression(y == x ^ 2), col = "darkgreen", cex = 1.5) #数学标注expression()函数

描述性统计图
柱状图
windows()
barplot(height = c(3, 5, 2, 8), names.arg = c("A", "B", "C", "D"), col = rainbow(4), main = "柱状图示例")

饼图
pie(c(10, 20, 30, 40), labels = c("A", "B", "C", "D"), col = rainbow(4), main = "饼图示例") # 前面介绍rainbow()函数时有用过饼图

直方图
hist(rnorm(1000), breaks = 30, col = "lightblue", main = "直方图示例1") # rnorm()函数生成正态分布随机数
同时显示多附图函数
par(mfrow = c(2,1)) # 2行1列
hist(rnorm(1000), breaks = 30, col = "lightblue", main = "直方图示例2")
par(mfrow = c(1,1)) # 还原为1行1列

箱线图
x <- rnorm(100)
boxplot(x, main = "箱线图示例") -> fig
fig$stats #查看箱线图统计值
text(1.2, fig$stats, c("下限", "下四分位数", "中位数", "上四分位数", "上限"), col = rainbow(5), pos = 4) # pos参数表示标注位置,1-下,2-左,3-上,4-右

下面的三维绘图与动态作图相对复杂,读者看书了解即可,本文不做讲解。
