如何在R中的ggplot图上绘制单个点?

时间:2019-06-30 03:23:55

标签: r ggplot2

我试图沿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

谢谢!

2 个答案:

答案 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)

enter image description here

答案 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进行注释