【发布时间】:2019-04-20 18:30:42
【问题描述】:
我很难在均值 a 和密度 b 以及均值 b 和密度 a 的交点处添加点。
我尝试使用 geom_point(data.frame(x = c(2,3), y = rep(dnorm(2,mean = 3), 2), fill = "green",...) 但我保留遇到错误,不知道该怎么办。
ggplot(data = data.frame(x = c(-1, 6)), aes(x)) +
stat_function(fun = dnorm, n = 100, args = list(mean = 2, sd = 1), aes(linetype = "a")) +
stat_function(fun = dnorm, n = 100, args = list(mean = 3, sd = 1), aes(linetype = "b")) +
scale_linetype_manual("Density Function", values = c(1, 2)) +
labs(x = "Value", y = "Probability Density") +
geom_vline(aes(xintercept = 2, colour = "mean1"), show.legend = NA) +
geom_vline(aes(xintercept = 3, colour = "mean2"), show.legend = NA, linetype = 2) +
scale_colour_manual("Mean", values = c(mean1 = "#F8766D", mean2 = "#C77CFF"),
labels = c("Mean a", "Mean b")) +
ggtitle("Add points at intersection")
不幸的是,@Nate 的建议效果不佳:
ggplot() +
stat_function(fun = dnorm, n = 100, args = list(mean = 2, sd = 1), aes(linetype = "a")) +
stat_function(fun = dnorm, n = 100, args = list(mean = 3, sd = 1), aes(linetype = "b")) +
geom_point(x = c(2,3), y = rep(dnorm(2, mean = 3), 2), color = "green") +
scale_linetype_manual("Density Function", values = c(1, 2)) +
labs(x = "Value", y = "Probability Density") +
geom_vline(aes(xintercept = 2, colour = "mean1"), show.legend = NA) +
geom_vline(aes(xintercept = 3, colour = "mean2"), show.legend = NA, linetype = 2) +
scale_colour_manual("Mean", values = c(mean1 = "#F8766D", mean2 = "#C77CFF"),
labels = c("Mean a", "Mean b")) +
ggtitle("Add points at intersection")
【问题讨论】:
-
尝试放弃
data.frame()呼叫并使用+ geom_point(x = c(2,3), y = rep(dnorm(2, mean = 3), 2), color = "green") -
这不是很好,但它是一个很好的尝试:)
-
@Nate 解决方案对我有用。不要改变你的绘图功能。只需更改添加的
geom_point()部分,它就可以工作 -
谢谢@prosoitos,成功了!