如何强制R绘制y轴从y = 0开始并保持颜色?

时间:2016-07-26 22:11:15

标签: r plot density-plot

我现在试图绘制一些数据的概率密度函数,我发现y=0和x轴之间有一段距离。我试图设置yaxs="i",但x轴将变为灰色。有什么解决方案吗?谢谢。这是一个例子

set.seed(100)
plot(density(rnorm(100)),xlab="",ylab="",main="")

enter image description here

plot(density(rnorm(100)),yaxs="i",xlab="",ylab="",main="")

如您所见,x轴的颜色将变为灰色。如何让它变黑? enter image description here

2 个答案:

答案 0 :(得分:2)

您获得灰色线条的原因是,当您将对象类plot.density传递给density时,您正在调用plotplot.density的{​​{1}}参数设置为TRUE,默认情况下使用zero.line绘制灰线(请参阅abline(h = 0, lwd = 0.1, col = "gray")代码)。您需要将stat:::plot.density设置为FALSE。

zero.line

enter image description here

如果你想在顶部留出比plot(density(nums), yaxs="i", xlab="", ylab="", main="", zero.line = FALSE) 更多的空间,你也可以控制上部ylim。当然,您仍需要yaxs = "i"来绘制灰色零线。

zero.line = FALSE

另一种解决方案是用另一条线覆盖灰线:

plot(density(nums), yaxs="i",
    xlab="", ylab="", main="",
    zero.line = FALSE,
    ylim = c(0, 0.5)) # put whatever you want here instead 0.5

答案 1 :(得分:-1)

如果指定ylim,它应该可以工作。

d <- density(rnorm(100))
plot(d, xlab = "", ylab = "", ylim = c(0,max(d$y)), yaxs = "i")

你也可以指定

par(col.axis = "black")

如下所示,即从0开始并保持颜色。

d <- density(rnorm(100))
plot(d, xlab = "", ylab = "", ylim = c(0,max(d$y)+.05), yaxs = "i",
     col.axis = "black")

enter image description here