以下是我使用的代码:
library(data.table)
library(ggplot2)
test <- data.table(x = c(1, 1, 1, 1,1))
ggplot(test, aes(x = x)) +
geom_density(fill = "blue", alpha = 0.4)
如何让图表只显示1的垂直线?
答案 0 :(得分:3)
这只是做你告诉它要做的事情。查找adjust
函数的density
参数,因为这会影响bw
(带宽)参数。由于您对数据有所了解,因此您也可以将内核类型更改为更合适(尽管在此示例中确实没有必要)。
ggplot(test, aes(x = x)) +
geom_density(fill = "blue", alpha = 0.4, kernel="rectangular", adjust=0.0000001)
“内置”density
功能并不是非常精确(尝试整合x / y结果,看看你有多久完全 1
)。您可以使用bkde
中的KernSmooth
函数来获得更准确的结果/图表:
library(KernSmooth)
den <- bkde(test$x,
bandwidth=1,
range.x=c(0.99999, 1.00001),
truncate=TRUE)
ggplot(data.frame(x=den$x, y=den$y), aes(x, y)) +
geom_line() +
xlim(0, 2)
但是,我对你想要实现的与如何更加好奇。