在 R 中,如何制作每行具有多个值的平坦斜率图/散点图?

问题描述 投票:0回答:1

我正在尝试制作一个如下所示的图表:

除了每行不是不同的媒体组织之外,您将有每个单独的调查参与者(有 47 个,我知道这可能会导致图表混乱),然后而不是“所有”、“保守派”和“工党” " 作为每行的三个数据点,它将是 Survey1$Variable_X 和 Survey2$Variable_X。这可以让我直观地看到该变量的变化以及变化的幅度。看起来像这样的东西:

我确实使用 (Survey2$Variable_X - Survey1$Variable_X) 的结果在一个简单的散点图中制作了这个,但这看起来有点无聊,而上图对我来说更有趣。

我知道这是散点图的一个版本,但是有谁知道如何在 R 中制作这样的东西,或者有人可以告诉我这种类型的图表的具体名称吗?我尝试了斜率图,但它非常混乱:

提前感谢您提供的任何和所有帮助:)

编辑:抱歉,忘记添加一些示例数据,如下所示:

  participantNum survey1_score survey2_score
1              1           -28             4
2              2           -14            16
3              3            20           -10
4              4             6             8
5              5           -20            26
6              6            22            24
r graph visualization scatter-plot
1个回答
1
投票
library(tidyverse)

df <- data.frame( participantNum = c(1, 2, 3, 4, 5, 6),
                  survey1_score = c(-28, -14, 20, 6, -20, 22), 
                  survey2_score = c(4,16, -10, 8, 26,24)
)


ggplot(df) +
  geom_segment(mapping = aes(x=factor(participantNum), xend=participantNum, y=survey1_score, yend=survey2_score), color="grey") +
  geom_point(mapping = aes(x=participantNum, y=survey1_score), color=rgb(0.2,0.7,0.1,0.5), size=3 ) +
  geom_point(mapping = aes(x=participantNum, y=survey2_score), color=rgb(0.7,0.2,0.1,0.5), size=3 ) +
  coord_flip()+
  theme(
    legend.position = "none",
  ) 

© www.soinside.com 2019 - 2024. All rights reserved.