我有兩個dfs
df1 <- data.frame(x= seq(1,1000,1), y=rnorm(1000,500,250), z=rep(1:4,250))
df2 <- data.frame(x = c(450,481,512,571), y=c(450,481,512,571), z=1:4)
我將它們繪制成這樣;
library(ggplot2)
ggplot(df1)
geom_point(aes(x=x,y=y,color = z),alpha=0.2)
geom_point(data = df2, aes(x=x,y=y,color = z),size=4)
我希望所有對應于 df1 中 z=1 的 x,y 都連接到對應于 df2 中 z=1 的 x,y。這將從 df2 中的點創建某種輻射線。我怎樣才能做到這一點?
提前致謝。
uj5u.com熱心網友回復:
我會對兩個資料框進行左連接z,然后使用geom_segment. z將顏色作為離散變數也可能更有意義:
df3 <- dplyr::left_join(df1, df2, by = "z", suffix = c("_1", "_2"))
ggplot(df3)
geom_point(aes(x_1, y_1, color = factor(z)), alpha = 0.2)
geom_segment(aes(x_1, y_1, xend = x_2, yend = y_2, color = factor(z)),
alpha = 0.2)
geom_point(data = df2, aes(x, y, fill = factor(z)), size = 5,
color = "black", shape = 21)
theme_minimal()

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/445298.html
上一篇:計數列,直到每行找到一個值
