R 在分组散点图中水平抖动点

R 在分组散点图中水平抖动点,r,ggplot2,R,Ggplot2,我将数据分组,并将其绘制为分组散点图。这是数据 df <- data.frame(id = rep(1:46, each = 3), bevType = rep(c("water","decaf","coffee"), times = 46), score = c(2.9,1.0,0.0,9.5,5.0,4.5,9.0,3.0,5.0,5.0,0.0,3.0,9.5,2.0,3.0,8.5,0.0,6.0,5.2,3.0,

我将数据分组,并将其绘制为分组散点图。这是数据

df <- data.frame(id = rep(1:46, each = 3),
                 bevType = rep(c("water","decaf","coffee"), times = 46),
                 score = c(2.9,1.0,0.0,9.5,5.0,4.5,9.0,3.0,5.0,5.0,0.0,3.0,9.5,2.0,3.0,8.5,0.0,6.0,5.2,3.0,4.0,8.4,7.0,2.0,10.0,0.0,3.0,7.3,1.0,1.8,8.5,2.0,9.0,10.0,5.0,10.0,8.3,2.0,5.0,6.0,0.0,5.0,6.0,0.0,5.0,10.0,0.0,5.0,6.8,1.0,4.8,8.0,1.0,4.0,7.0,4.0,6.0,6.5,1.0,3.1,9.0,1.0,0.0,6.0,0.0,2.0,9.5,4.0,6.0,8.0,1.0,3.8,0.4,0.0,7.0,7.0,0.0,3.0,9.0,2.0,5.0,9.5,2.0,7.0,7.9,5.0,4.9,8.0,1.0,1.0,9.3,5.0,7.9,6.5,2.0,3.0,8.0,2.0,6.0,10.0,0.0,5.0,6.0,0.0,5.0,6.8,0.1,7.0,8.0,3.0,9.1,8.2,0.0,7.9,8.2,5.0,0.0,9.2,1.0,3.1,9.1,3.0,0.6,5.7,2.0,5.1,7.0,0.0,7.4,8.0,1.0,1.5,9.1,4.0,4.3,8.5,8.0,5.0))
但如果我加上一个width=参数,使点横向抖动

ggplot(df, aes(x = bevType, y = score, colour = bevType)) +
       geom_jitter(shape = 1, position = position_dodge(width=0.9), width = 0.1)  +
       scale_colour_manual(name = "Beverage Type", labels = c("Water", "Decaf", "Coffee"), values = c("#616a6b", "#00AFBB", "#E7B800")) +  
       labs(y = "Score", x = "Beverage Type") +
       theme(axis.text.x = element_blank(),
             axis.ticks.x = element_blank(),
             legend.title = element_blank())
但是我得到了错误

Error: Specify either `position` or `width`/`height`
因此,我收集了geom_jitterfunction中的两个width=参数,它们会导致混淆,那么如何水平抖动每列中的点呢?

我认为您不需要position_dodge。只需在geom_jitter中指定适当的宽度。例如:

ggplot(df1, aes(bevType, score, colour = bevType)) +
  geom_jitter(shape = 1, width = 0.2) +
  scale_colour_manual(name = "Beverage Type", 
                      labels = c("Water", "Decaf", "Coffee"), 
                      values = c("#616a6b", "#00AFBB", "#E7B800")) +  
  labs(y = "Score", 
       x = "Beverage Type") +
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank(),
        legend.title = element_blank())
position_dodge的width=参数与列的对齐方式有关,而不是单个列的宽度。后者是geom_抖动的一个论点。
ggplot(df1, aes(bevType, score, colour = bevType)) +
  geom_jitter(shape = 1, width = 0.2) +
  scale_colour_manual(name = "Beverage Type", 
                      labels = c("Water", "Decaf", "Coffee"), 
                      values = c("#616a6b", "#00AFBB", "#E7B800")) +  
  labs(y = "Score", 
       x = "Beverage Type") +
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank(),
        legend.title = element_blank())