【问题标题】:R code of scatter plot for four variables四个变量的散点图的R代码
【发布时间】:2021-04-19 08:24:50
【问题描述】:

我尝试为按种族分组的每个孩子绘制 ASB 与 YOI

我得到了类似的东西:

library(tidyverse)
Antisocial <- structure(list(Child = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L,  4L), ASB = c(1L, 1L, 1L, 0L, 0L, 0L, 5L, 5L, 5L, 2L), Race = c(1L,  1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Y92 = c(0L, 1L, 0L, 0L,  1L, 0L, 0L, 1L, 0L, 0L), Y94 = c(0L, 0L, 1L, 0L, 0L, 1L, 0L,  0L, 1L, 0L), YOI = c(90L, 92L, 94L, 90L, 92L, 94L, 90L, 92L,  94L, 90L)), row.names = c(NA, 10L), class = "data.frame")

ggplot(data = Antisocial, aes(x = YOI, y = ASB)) + 
  geom_point( colour = "Black", size = 2) + 
  geom_line(data = Antisocial, aes(x= Child), size = 1) +
  facet_grid(.~ Race)

我生成的绘图图像:https://drive.google.com/file/d/1sZVsRFiGC0dIGg0GWhHhNDCaiW2iB-ky/view?usp=sharing

完整数据集-https://drive.google.com/file/d/1UeVTJ1M_eKQDNtvyUHRB77VDpSF1ASli/view?usp=sharing

我想使用 2 个并排的 Race=0,Race=1 图表来绘制按种族分组的每个孩子的 ASB 与 YOI。然而,这条线应该只连接到同一个孩子的点。就像现在一样,所有的点都连接在一起。此外,YOI的规模应该是(90,94)。

你能建议我应该做什么改变吗?

谢谢!

【问题讨论】:

  • 给我们一个带有dput(Antisocial[20, ])的示例代码,前20行左右。
  • 给你:structure(list(Child = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L), ASB = c(1L, 1L, 1L, 0L, 0L, 0L, 5L, 5L, 5L, 2L), Race = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Y92 = c(0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L), Y94 = c(0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L), YOI = c(90L, 92L, 94L, 90L, 92L, 94L, 90L, 92L, 94L, 90L)), row.names = c(NA, 10L), class = "data.frame")

标签: r ggplot2


【解决方案1】:

感谢您提供数据。我将 4 个观察结果更改为第 0 场比赛以产生一些变化:

library(tidyverse)
Antisocial <- structure(list(Child = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L,  4L), ASB = c(1L, 1L, 1L, 0L, 0L, 0L, 5L, 5L, 5L, 2L), Race = c(1L,  1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L), Y92 = c(0L, 1L, 0L, 0L,  1L, 0L, 0L, 1L, 0L, 0L), Y94 = c(0L, 0L, 1L, 0L, 0L, 1L, 0L,  0L, 1L, 0L), YOI = c(90L, 92L, 94L, 90L, 92L, 94L, 90L, 92L,  94L, 90L)), row.names = c(NA, 10L), class = "data.frame")
        
ggplot(data = Antisocial, aes(x = YOI, y = ASB, , group = Child)) + 
    geom_point( colour = "Black", size = 2) + 
    geom_line()+
    facet_grid(.~ Race)

要连接每个孩子的点,您需要在代码中包含group = Child。我想这就是你想要的?让我知道这是否解决了您的问题:)

【讨论】:

  • 谢谢!我即兴创作了你所做的,我能够为 Child 获得台词,但我无法添加图例。同样在生成的图表中,线条不是很显着,并且似乎很难理解图表。您认为添加箱线图或其他任何内容会清楚吗?如果是,请编辑代码。 Anti &lt;- Antisocial[0:60,] ggplot(data = Anti, aes(x = YOI, y = ASB, group= Child)) + geom_point( colour = "Black", size = 2) + geom_line(color= Anti$Child) + facet_grid(.~ Race)
  • 获取图例:ggplot(data = Anti, aes(x = YOI, y = ASB, group= Child, color = "Child)) +....。而且我认为每场比赛的箱线图会使解释更加清晰。
  • 如果这个问题让我知道!也许接受遮阳篷,以便其他人也看到它,但显然你不必:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多