格式化科学期刊的箱线图

Formatting boxplots for scientific journal

我要在科学期刊上发表一篇带有一些箱线图的论文,我有两个数字,它们上面有不同数量的箱线图。我希望绘图条具有相同的宽度。我不想控制整个图的宽度,而是控制条形图的宽度。

这是我得到的:

Clades<-c("C-A","C-A","C-A","C-A","C-A","C-A","C-A","C-A","C-A","C-B","C-B","C-B","C-B","C-B","C-B","C-B","C-B","C-C","C-C","C-C","C-C","C-C","C-C","C-C","C-C","C-D","C-D","C-D","C-D","C-D","C-D","C-D","C-D","G-A","G-A","G-A","G-A","G-A","G-A","G-A","G-A","G-A","G-A","G-A","G-B","G-B","G-B","G-B","G-B","G-B","G-B","G-B","G-B","G-B","G-C","G-C","G-C","G-C","G-C","G-C","G-C","G-D","G-D","G-D","G-D","G-D","G-D","G-D","G-D","G-D","G-D","G-D","G-E","G-E","G-E","G-E","G-E","G-E","G-E","G-E","G-E","G-E")
NoGClades<-c("C-A","C-A","C-A","C-A","C-A","C-A","C-A","C-A","C-A","C-B","C-B","C-B","C-B","C-B","C-B","C-B","C-B","C-C","C-C","C-C","C-C","C-C","C-C","C-C","C-C","C-D","C-D","C-D","C-D","C-D","C-D","C-D","C-D","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G","G")
HapDiv<-c(12,23,12,34,12,34,12,34,12,115,123,12,34,45,123,3,23,13,156,14,5,14,14,11,12,12,34,12,34,12,115,123,12,34,45,123,3,23,12,23,12,12,23,12,123,12,34,45,12,34,12,12,34,12,13,156,14,5,12,34,45,115,123,12,14,14,11,34,12,34,12,34,123,3,23,12,23,12,12,13,156,14)

Haplotypes<-data.frame(Clades,NoGClades,HapDiv) # create data frame
plot(Haplotypes$Clades, Haplotypes$HapDiv, 
  xlab="Clade", ylab="Haplotype Diversity",
  main="Haplotype Diversity with Clades in G")
plot(Haplotypes$NoGClades, Haplotypes$HapDiv, 
  xlab="Clade", ylab="Haplotype Diversity",
  main="Haplotype Diversity with no Clades in G")

因为条形的数量不同 - 两个图中各个条形的宽度不同。如何控制它们的宽度使其完全相等?

一般来说,我也希望有一种直接的方法来控制箱线图的外观。

您可以使用 ggplot2 创建情节。

使用 tidyr 将您的数据更改为长格式:

library(tidyr)
dat <- gather(Haplotypes, variable, value, -HapDiv)

重命名因子水平:

levels(dat$variable) <- c("Haplotype Diversity with Clades in G",
                          "Haplotype Diversity with no Clades in G")

剧情:

library(ggplot2)
ggplot(dat, aes(x = value, y = HapDiv)) + 
  geom_boxplot() + 
  facet_grid(. ~ variable, scales = "free_x", space = "free_x") +
  xlab("Clade") +
  theme_bw()