R语言绘制双坐标轴(5种方法全网最全) 您所在的位置:网站首页 r语言作折线图 R语言绘制双坐标轴(5种方法全网最全)

R语言绘制双坐标轴(5种方法全网最全)

2024-01-02 14:01| 来源: 网络整理| 查看: 265

本文分别使用base、plotly、ggplot2、lattice4个系统,5种方法绘制双坐标轴。

本文是付费文章,不愿意阅读也没有关系,明天将本文章免费放出

这次为免费版本,内容是完全一样的

哈德利说了,两个坐标轴容易误导,他们不做(其实做了)

其实解决方法有很多, 接下来分系统说

 

part 1使用R的base画图系统

使用的数据就是R内置的数据。其中beaver1的长度为114, beaver2长度为100。所以都选择100.

#使用R的内置数据集 beaver1 beaver2 # 看看数据集的长度 length(beaver1[, 3]); length(beaver2[, 3]) # 上面的长度不是一样长,因此选择长度为100. plot(beaver1[1:100, 3], type = 'l', ylab = "beaver1 temperature") par(new = TRUE) plot(beaver2[,3], type = "l") # 上面y有两个标签, 不好看

出来的结果如下:上面的par(new=TRUE)意思是在原来的图形上再加一个图形。

上面有问题,左边的y标签和y的刻度都是有两个,作为华东胡歌,深深的感觉很丑。那么修改一下。

# updated plot plot(beaver1[1:100, 3], type ="l", ylab = "beaver1 temperature") par(new = TRUE) plot(beaver2[,3], type = "l", xaxt = "n", yaxt = "n", ylab = "", xlab = "") axis(side = 4)

上面依然使用par(new=TRUE)表示可以继续在原来图上加图形。但是这个时候,在第四行有几个参数:xaxt和yaxt决定是否画坐标轴的刻度线和刻度线标签。xaxt = ‘n’时,不画坐标轴x的刻度线和刻度线标签;yaxt = ‘n’时,不画坐标轴y的刻度线和刻度线标签。ylab和xlab是关闭y的标签。第六行axis是用来添加坐标轴的,side为4是添加到右边。出来效果如下:

但是上面的图依然不好看。再来优化一下,加上颜色,加上图例。

# final plot par(mar = c(5, 5, 3, 5)) plot(beaver1[1:100, 3], type ="l", ylab = "beaver1 temperature", main = "Beaver Temperature Plot", xlab = "Time", col = "blue") par(new = TRUE) plot(beaver2[,3], type = "l", xaxt = "n", yaxt = "n", ylab = "", xlab = "", col = "red", lty = 2) axis(side = 4) mtext("beaver2 temperature", side = 4, line = 3) legend("topleft", c("beaver1", "beaver2"), col = c("blue", "red"), lty = c(1, 2))

这里的代码和上面的其实差不多,就是更改了线形和线的形状。第10行代码的mtext是代表给某个轴添加文本

最终出来的图如下:

这里已经基本上可以了。

 

参考链接:

https://thepracticalr.wordpress.com/2016/08/30/2-y-axis-plotting/

http://xukuang.github.io/blog/2015/05/contolling-axes-of-R-plots/

https://www.r-bloggers.com/r-single-plot-with-two-different-y-axes/

part 2 调用现成的包使用plotrix包

这里有很多案例,这个包画出来的东西还可,但是感觉像是使用的R的base系统。

library(plotrix) example(twoord.plot)

参考链接:

https://stackoverflow.com/questions/6142944/how-can-i-plot-with-2-different-y-axes

 

part 3 使用plotly包

plotly已经是我们的老朋友了

library(plotly) ay


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有