使用多个分布函数修复 R 图上的 y 轴标签

问题描述

enter image description here

我正在尝试使用标准 R 命令在 R 中绘制一些不同的伽马分布函数 - 没有包。

正如您在此处看到的,我正在为我绘制的每个函数重做 y 轴。有没有办法让我的所有 7 个函数沿着相同的 y 轴运行?这是我的代码

par(mfrow=c(1,1))
x <- seq(0,1,length = 10000)
fun1 <- function(x) dgamma(x,2)
fun2 <- function(x) dgamma(x,2,2)
fun3 <- function(x) dgamma(x,3,2)
fun4 <- function(x) dgamma(x,5,1)
fun5 <- function(x) dgamma(x,9,.5)
fun6 <- function(x) dgamma(x,7.5,1)
fun7 <- function(x) dgamma(x,.5,1)

plot(fun1,20,col = "red")
par(new = TRUE)
plot(fun2,col = "orange")
par(new = TRUE)
plot(fun3,col = "yellow")
par(new = TRUE)
plot(fun4,col = "green")
par(new = TRUE)
plot(fun5,col = "black")
par(new = TRUE)
plot(fun6,col = "blue")
par(new = TRUE)
plot(fun7,col = "purple")

解决方法

与其使用 S3 dispatch 调用 plot.function(),我更愿意直接调用 curve(),并使用 add 参数而不是 par(new = TRUE) 将行添加到现有阴谋;然后我们只得到一组 y 轴的轴和刻度标签:

curve(fun1,20,col = "red")
curve(fun2,col = "orange",add = TRUE)
curve(fun3,col = "yellow",add = TRUE)
curve(fun4,col = "green",add = TRUE)
curve(fun5,col = "black",add = TRUE)
curve(fun6,col = "blue",add = TRUE)
curve(fun7,col = "purple",add = TRUE)

enter image description here

如您所见,这与您最初的绘图完全不同,这是因为它每次都重新绘制轴而不是坚持一组轴限制。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...