首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接点到中心点(2d散射点)

连接点到中心点(2d散射点)
EN

Stack Overflow用户
提问于 2022-03-16 16:51:31
回答 1查看 35关注 0票数 0

我有两个dfs

代码语言:javascript
复制
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)

我把它们画成这样;

代码语言:javascript
复制
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)

我希望所有的x,y,对应于df1中的z=1,连接到x,y对应于df2中的z=1。这将从df2中的点创建某种类型的辐射线。我怎样才能做到这一点?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-16 17:08:04

我将通过z对这两个数据帧进行左连接,然后使用geom_segment。将z着色为离散变量也可能更有意义:

代码语言:javascript
复制
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()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71501162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档