R 如何使用ggplot2指示连续轴上的组(如染色体)?

R 如何使用ggplot2指示连续轴上的组(如染色体)?,r,plot,ggplot2,geom-bar,R,Plot,Ggplot2,Geom Bar,这就是我想要描绘的: 使用ggplot2,我可以绘制正确的条带,但是使用x轴上的轨迹号,而不是染色体号。它只是绘制每个条的编号,比如1,2,…,500,但它没有显示染色体。我怎样才能做到这一点 可复制示例: p显而易见的方法是使用scale\u x\u continuous并设置手动分隔符和标签,但是 我以前使用过的一种方法是使用具有自由比例和空间的镶嵌面 创建一些随机数据 您可以关闭轴扩展以使这些条正好彼此相邻,但就我个人而言,我非常喜欢这些间隙 p + facet_grid(~Chrom

这就是我想要描绘的:

使用ggplot2,我可以绘制正确的条带,但是使用x轴上的轨迹号,而不是染色体号。它只是绘制每个条的编号,比如1,2,…,500,但它没有显示染色体。我怎样才能做到这一点

可复制示例:
p显而易见的方法是使用
scale\u x\u continuous
并设置手动分隔符和标签,但是

我以前使用过的一种方法是使用具有自由比例和空间的镶嵌面

创建一些随机数据

您可以关闭轴扩展以使这些条正好彼此相邻,但就我个人而言,我非常喜欢这些间隙

p + facet_grid(~Chromosome, scales = 'free_x', space = 'free_x', switch = 'x') + 
  theme_classic() + 
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank(),
        panel.margin = unit(0, "lines")) +
  scale_x_continuous(expand = c(0, 0))

您的示例数据不包含您描述的标签。有一篇帖子可能与之类似。谢谢!facet\u grid完全符合我的需要。它比使用scale\u x\u continuous更方便。
info <- data.frame(number = 1:800,
                   Fst = runif(800),
                   Chromosome = rep(1:5, c(300, 200, 100, 100, 100)))
p <- ggplot(data = info, aes(x = number, y = Fst, fill = factor(Chromosome))) +
  geom_bar(stat = "identity") + labs(x = "Chromosome", y = "Fst")
p + facet_grid(~Chromosome, scales = 'free_x', space = 'free_x', switch = 'x') + 
  theme_classic() + 
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank(),
        panel.margin = unit(0, "lines"))
p + facet_grid(~Chromosome, scales = 'free_x', space = 'free_x', switch = 'x') + 
  theme_classic() + 
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank(),
        panel.margin = unit(0, "lines")) +
  scale_x_continuous(expand = c(0, 0))