我现在正在尝试绘制一些数据的概率密度函数,我发现y=0
和x轴之间有一定距离。我尝试设置 yaxs="i"
,但随后 x 轴将变为灰色。有什么解决办法吗?谢谢。这是一个例子
set.seed(100)
plot(density(rnorm(100)),xlab="",ylab="",main="")
plot(density(rnorm(100)),yaxs="i",xlab="",ylab="",main="")
最佳答案
出现灰线的原因是,当您将对象类密度
传递给plot
时,您正在调用plot.密度
。 plot.密度
有一个zero.line
参数,该参数设置为TRUE,并使用abline(h = 0, lwd = 0.1, col = "绘制灰线默认情况下为灰色”)
(有关代码,请参阅stat:::plot.密度
)。您需要将 zero.line
设置为 FALSE。
plot(density(nums), yaxs="i",
xlab="", ylab="", main="",
zero.line = FALSE)
如果您想在顶部提供比 yaxs = "i"
更多的空间,您也可以控制上部 ylim
。当然,您仍然需要 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
另一种解决方案是用另一条线覆盖灰线:
plot(density(nums), yaxs="i",
xlab="", ylab="", main="")
abline(h = 0)
关于r - 如何强制 R 绘图 y 轴从 y=0 开始并保持颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38600705/