2

我希望直接在曲线样条顶部添加点。此处的代码不起作用,因为 geom_point 将点放置为就好像线条是直线一样。见点#2、#3。我尝试将 stat_bspline2 与 geom = "point" 一起使用,但没有成功。

非常感谢您的帮助。


library(tidyverse)
library(ggforce)

data <- tibble (
  x = c(10, 15, 17, 17, 20, 22, 22, 23, 25, 25, 27, 29),
  y = c(5, 7, 4, 4, 0, 5, 5, 6, 5, 5, 4, 5.5),
  g = c("A", "A", "A", "B", "B", "B", "C", "C", "C", "D","D","D"),
  pt = c(1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1)
)

data <- data %>%
  mutate(pt_x = ifelse(pt == 1, x, NA),
         pt_y = ifelse(pt == 1, y, NA))

ggplot(data) + 
  stat_bspline2(aes(x=x, y=y, color = ..group.., group = g), size = 4, n = 300, geom = "bspline0") +
  scale_color_gradientn(colours = c("red", "pink", "green", "white"), guide = F) +
  geom_point(aes(pt_x, pt_y), size = 7)
4

0 回答 0