两个分类变量的散点图

时间:2018-01-02 10:48:38

标签: r scatter-plot categorical-data

我有两个分类变量,我想互相绘制。

这是我数据的虚拟示例:

dummyData <- as.factor(c(rep("fav", 10), rep("int",30)))
dummyMethod1 <- sample(dummyData)
dummyMethod2 <- sample(dummyData)

以下是我试图绘制它的方式:

plot(dummyMethod1, dummyMethod2)

这给出了一个条形图,这是可以的,但是无法看到每个类别中有多少数据点。

或:

ggplot(data = data.frame(dummyMethod1, dummyMethod2),
       aes(x = dummyMethod1, y = dummyMethod2)) + 
  geom_point(position = position_dodge(width = 0.4))

这会产生一个散点图,它也不会提供有关每个类别中数据点数的任何信息。

有没有办法制作dummyMethod1 vs dummyMethod2的散点图,以便我可以看到每个类别中的每个数据点?

2 个答案:

答案 0 :(得分:2)

使用抖动:

dummyData <- data.frame(x = as.factor(c(rep("fav", 10))),
                        y = as.factor(c(rep("int",30))))

ggplot(data = dummyData, aes(x, y)) +
  geom_jitter()

enter image description here

答案 1 :(得分:1)

ggbeeswarm有一些不错的选项可用于绘制重叠点

library(ggbeeswarm)
ggplot(data = data.frame(dummyMethod1, dummyMethod2),
       aes(x = dummyMethod1, y = dummyMethod2)) + 
  theme_bw(base_size = 16) +
  geom_quasirandom(col = "grey50", varwidth = TRUE, groupOnX = TRUE, alpha = 3/4, size = 2)

enter image description here