我试图沿r的x轴(从0到35)向ggplot中的ggplot中的曲线添加一个点(以x表示线方程)。每当我尝试绘制点时,都会遇到这样的问题:遇到aes()错误...我该如何解决?我需要的只是一个标记为“点”的奇异点,它在这些坐标处是蓝色的。
ggplot(data.frame(x=c(0,35)), aes(x)) +
stat_function(fun=function(x)10^(-0.05841*x)+10^7.2241, geom="line") +
geom_point() +
annotate("point", x = 23, y = 39000, colour = "blue")
运行此命令时出现此错误:
Aesthetics must be either length 1 or the same as the data (2): y
谢谢!
答案 0 :(得分:1)
也许是这样吗?
library(ggplot2)
ggplot(data.frame(x=c(0,35)), aes(x)) +
stat_function(fun=function(x)10^(-0.05841*x)+10^7.2241, geom="line") +
annotate("point", x = 23, y = 39000, colour = "blue") +
annotate("text", x = 23, y = 39000, label = "point", colour = "blue", vjust = -0.5)
答案 1 :(得分:1)
如果我尝试运行您的代码,则会收到另一个错误:
Error: geom_point requires the following missing aesthetics: y
因此很容易解决:
ggplot(data.frame(x=c(0,35)), aes(x)) +
stat_function(fun=function(x)10^(-0.05841*x)+10^7.2241, geom="line") +
geom_point(aes(x = 23, y = 39000), color = "blue", size = 2) +
geom_text(data = data.frame(x = 23, y = 39000), aes(x, y, label = "point"))
请注意,我用annotate
更改了您的geom_text
,以防万一您要注释的不是一个,而是多个,然后从data.frame
进行注释