如何创建比较两组的一个变量的散点图?

How to create a scatterplot of one variable comparing two groups?

我正在尝试使用 ggplot 为单个数值变量制作两组相互对比的 scatter/xy 图。

如果我有一个看起来像这样的数据集:

#  condition   group     size
#1   apple_1   apple      200
#2   apple_2   apple      400
#3   apple_3   apple      600
#4    pear_1    pear      300
#5    pear_2    pear      400
#6    pear_3    pear      700

我想制作一个散点图,x 轴是苹果的大小,y 轴是梨的大小,apple_1 和 pear_1 匹配创建一个点, apple_2 与 pear_2,apple_3 与 pear_3。这基本上会导致正相关的散点图。

有办法吗?

applepear放在不同的列中,这样绘图会更容易。

library(tidyverse)

df %>%
  select(-condition) %>%
  pivot_wider(names_from = group, values_from = size, values_fn = list) %>%
  unnest(cols = everything()) %>%
  ggplot(aes(apple, pear)) + geom_point(size = 3)

使用 plot + unstack

的简单基础 R 选项
plot(unstack(rev(df[-1])))

一个ggplot版本

df %>%
  select(-condition) %>%
  rev() %>%
  unstack() %>%
  ggplot(aes(apple, pear)) +
  geom_point()