仅通过R中的一个特征来避开ggplot2中箱线图的位置

仅通过R中的一个特征来避开ggplot2中箱线图的位置,r,ggplot2,boxplot,R,Ggplot2,Boxplot,我已经创建了一个箱线图,并使用position=position\u dodge(width=0.75)按特征分隔箱线图 样本数据: > dput(LLDF_FEM[sample(nrow(LLDF_FEM), 20), ]) structure(list(UG = c("UG-92", "UG-84", "UG-92", "UG-92", "UG-92", "UG-100&qu

我已经创建了一个箱线图,并使用
position=position\u dodge(width=0.75)
按特征分隔箱线图

样本数据:

> dput(LLDF_FEM[sample(nrow(LLDF_FEM), 20), ])
structure(list(UG = c("UG-92", "UG-84", "UG-92", "UG-92", "UG-92", 
"UG-100", "UG-100", "UG-124", "UG-124", "UG-100", "UG-108", "UG-108", 
"UG-100", "UG-92", "UG-100", "UG-92", "UG-84", "UG-92", "UG-92", 
"UG-116"), S = c("9 ft", "15 ft", "12 ft", "9 ft", "9 ft", "15 ft", 
"9 ft", "12 ft", "12 ft", "12 ft", "15 ft", "15 ft", "9 ft", 
"9 ft", "12 ft", "12 ft", "15 ft", "9 ft", "15 ft", "15 ft"),
DF = c(0.675544766637228, 1.12010986868934, 0.67509202159604, 
0.606953387051025, 0.617048528484048, 1.10902349004771, 0.493649271617887, 
0.683544768889628, 0.767428121136581, 0.747836798819315, 
0.767034558365148, 1.0976267327002, 0.481931237485307, 0.592558501451535, 
0.798926202232163, 0.846794128611128, 0.77275265097913, 0.614343648928633, 
0.760887956585424, 0.874345317290198), Girder = c("Interior", 
"Exterior", "Interior", "Exterior", "Exterior", "Exterior", 
"Interior", "Interior", "Exterior", "Interior", "Interior", 
"Exterior", "Interior", "Exterior", "Exterior", "Interior", 
"Interior", "Exterior", "Interior", "Interior"), Loading = c("Multi", 
"Multi", "Multi", "Multi", "Multi", "Multi", "Multi", "Multi", 
"Multi", "Multi", "Multi", "Multi", "Multi", "Multi", "Multi", 
"Multi", "Multi", "Multi", "Multi", "Multi"), Type = c("Shear", 
"Shear", "Shear", "Moment", "Moment", "Shear", "Moment", 
"Moment", "Moment", "Shear", "Moment", "Shear", "Moment", 
"Moment", "Moment", "Shear", "Moment", "Moment", "Moment", 
"Shear"), X = c("Interior Girder \nShear LLDF", "Exterior Girder \nShear LLDF", 
"Interior Girder \nShear LLDF", "Exterior Girder \nMoment LLDF", 
"Exterior Girder \nMoment LLDF", "Exterior Girder \nShear LLDF", 
"Interior Girder \nMoment LLDF", "Interior Girder \nMoment LLDF", 
"Exterior Girder \nMoment LLDF", "Interior Girder \nShear LLDF", 
"Interior Girder \nMoment LLDF", "Exterior Girder \nShear LLDF", 
"Interior Girder \nMoment LLDF", "Exterior Girder \nMoment LLDF", 
"Exterior Girder \nMoment LLDF", "Interior Girder \nShear LLDF", 
"Interior Girder \nMoment LLDF", "Exterior Girder \nMoment LLDF", 
"Interior Girder \nMoment LLDF", "Interior Girder \nShear LLDF"
), Xx = c("Interior Girder \n", "Exterior Girder \n", "Interior Girder \n", 
"Exterior Girder \n", "Exterior Girder \n", "Exterior Girder \n", 
"Interior Girder \n", "Interior Girder \n", "Exterior Girder \n", 
"Interior Girder \n", "Interior Girder \n", "Exterior Girder \n", 
"Interior Girder \n", "Exterior Girder \n", "Exterior Girder \n", 
"Interior Girder \n", "Interior Girder \n", "Exterior Girder \n", 
"Interior Girder \n", "Interior Girder \n")), row.names = c(NA, 
-20L), class = c("tbl_df", "tbl", "data.frame"))
绘图代码:

fig1.1 <- ggplot(data = LLDF_FEM, aes(x = Xx, y = DF, 
              fill = factor(S,levels = c("9 ft","12 ft","15 ft")), colour = Type)) +  
  theme_classic() + geom_boxplot(outlier.shape = NA, 
              position = position_dodge(width = 0.75),fatten = 1, lwd = 0.2) +
    stat_summary(fun = mean, geom="point", shape=23, size=0.5, stroke = 0.2,
              position = position_dodge(width = 0.75)) + 
    stat_boxplot(geom ='errorbar', linetype=1, width=0.5, lwd = 0.2, 
              position = position_dodge(width = 0.75)) +
  geom_vline(xintercept = 1.5, col='gray', lwd=0.2) +
  annotate("segment", x=-Inf, xend=Inf, y=Inf, yend=Inf, size = 0.35) +
  annotate("segment", x=-Inf, xend=Inf, y=-Inf, yend=-Inf, size = 0.35) +
  annotate("segment", x=-Inf, xend=-Inf, y=-Inf, yend=Inf, size = 0.35) +
  annotate("segment", x=Inf, xend=Inf, y=-Inf, yend=Inf, size = 0.35) +
  scale_color_manual(values = c("red", "blue")) +
  scale_fill_manual(values = c("gray54", "gray92", "gray27")) +
      labs(x = element_blank(), y = "LLDF", fill = "Girder Spacing:") +
    theme(legend.title.align = 0.5, legend.position = "bottom", 
          axis.text.y = element_text(size=8, colour="black"),
          axis.text.x = element_text(size=8, colour="black"),
          axis.line = element_blank(), legend.background = element_blank(),
          axis.ticks = element_line(colour = "black", size = 0.2),
          legend.text = element_text(size=8, margin = margin(0,5,0,-4.5)),
          legend.title = element_text(size=8, margin = margin(0,1.5,0,0)),
          legend.spacing.x = unit(0.1, 'cm'), legend.spacing.y = unit(0.1, 'cm'),
           
          legend.box.background = element_rect(color = "black", size = 0.2)) +
  guides(fill = guide_legend(label.position = "bottom", label.hjust = 1.3, title.vjust = 0.8,
                             override.aes = list(shape = c(23))), colour = FALSE)

fig1.1不确定是否有方法正确分组以获得所需结果。相反,我将使用
Xx
,将
S
放在x轴上,并使用
position=“identity”
作为方框图和错误条。