R 菜鸟入门篇 第03篇 画图

在上两篇中,我们都用到了 plot 命令来作图。如果说 Excel 作图的方法是先按照默认的格式画好之后再让你涂涂改改,那么 R 作图的流程更亲切:铺开一张白纸,打好格,画数据点,画坐标轴,加图例。就像用纸笔画图。不像 Excel 那样自作聪明。每一步都清清楚楚掌控在你手里。

开胃小菜: 在 Rstudio 左下窗口输入代码 demo(persp),然后按回车,再回车,再回车,再回车……

这里,我们接着上一篇读取的数据 pm,来画一些更漂亮的图片。

pm <- read.csv(file = "c:\\R\\data\\dapengde_DummyR_PM25.csv")
plot(x = pm$time, y = pm$h8, xlab = "Time", ylab = "PM2.5", type = "l", ylim = c(0, 
    200))  # 以小时为 x 轴,8 米处的 PM2.5 浓度为 y 轴作图。设定两个坐标的名称。数据点类型为 l 即线型。设定 y 轴范围。
lines(x = pm$time, y = pm$h100, col = "red")  # 添加 100 米处 PM2.5 浓度曲线。
legend(x = 15, y = 180, legend = c("8 m", "100 m"), col = c("black", "red"), 
    lty = 1)  # 添加图例。

plot of chunk unnamed-chunk-1

练习03.1:请用问号查询 plot、lines、legend 的帮助文件。

添加图例的位置有多种设置方法。上面的例子是用坐标位置确定的。还可以用内置模板来指定:

legend("topleft", legend = c("8 m", "100 m"), col = c("red", "black"), lty = 1) # 图例添加在左上角。
legend(locator(1), legend = c("8 m", "100 m"), col = c("red", "black"), lty = 1) # 用鼠标确定图例的位置。

做出的图片出现在 Rtudio 右下窗,可以点击 _Export_,选择保存的格式和路径就可以了。不过,更经常用的是命令行方式:

pdf(file = "c:\\R\\data\\output.pdf") # 打开一张pdf的白纸。
plot(x = pm$time, y = pm$h8, xlab = "Time", ylab = "PM2.5 at 8 m", type = "l", ylim = c(0, 200)) # 在白纸上画图
dev.off() # 画完了,把纸张收起来

下面,我们让图片复杂一点:

pdf(file = "c:\\R\\data\\output2.pdf", width = 8, height = 5) # 设定纸张大小。
plot(x = pm$time, y = pm$h8, xlab = "Time", ylab = "PM2.5 at 8 m", type = "l", ylim = c(0, 200), axes=FALSE) # 画图,但坐标轴先空着。
axis(2) # 在左边画出 y 轴。
axis(4) # 在右边画出 y 轴。
axis(1, at = 0 : 23, labels = 0 : 23) # 在下面画出x轴,并在指定位置(at)标出刻度(labels)。
points(x = pm$time, y = pm$h100, col = "red", type = "l") # 增加一条线。
points(x = pm$time, y = pm$h325, col = "blue", type = "l") # 再增加一条线。
abline(h = c(10, 15 , 25, 35), col = "grey", lty = 2) # 增加几条水平线(世界卫生组织推荐的健康标准值)。
legend("top", legend = c("8 m", "100 m", "325 m"), col = c("red", "black", "blue"), lty = 1) # 添加图例。
box() # 画出边框。
dev.off()

散点图以外的图,用其他的命令,例如:

boxplot(pm[, c("h8", "h100", "h325")], ylim = c(0, 150))
abline(h = c(10, 15, 25, 35), col = "grey", lty = 2)

plot of chunk unnamed-chunk-2

练习03.1:请给上面boxplot做的图添加图例,并保存为pdf。

R 的作图功能超级强大,看看这里有很多例子,包含了源代码。

有用的信息:

作图 plot(), boxplot()
图上添加数据点和线 points(), lines(), abline(), box(), axis()
添加图例 legend()
保存图片 pdf()

连载中,待续

 

 

原文链接

comments powered by Disqus