gpt4 book ai didi

r - 如何使用 ggplot2 在连续轴上指示组(例如染色体)?

转载 作者:行者123 更新时间:2023-12-04 14:30:19 25 4
gpt4 key购买 nike

这就是我要绘制的内容:

enter image description here

使用 ggplot2,我可以绘制正确的条形图,但 x 轴上标明的是位点编号而不是染色体编号。它只是绘制每个条形图的编号,如 1,2,...,500,但不显示染色体。我怎样才能做到这一点?

可重现的例子:

p <- ggplot(data = info, aes(x = number,y= Fst,fill = Chromesome))
p + geom_bar(stat = "identity") + labs(x = "Chromosome", y =Fst)

number Chromosome Fst
1 1 0.5
2 1 0.6
3 2 0.7
4 2 0.9
5 3 0.7
6 3 0.1
7 4 0.3
8 4 0.4
9 5 0.5
10 5 0.6
11 6 0.7
12 6 0.8
13 7 0.9

最佳答案

显而易见的方法是使用 scale_x_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")

enter image description here

添加分面和自定义主题

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"))

enter image description here

您可以关闭轴扩展以使条形彼此完全相邻,但我个人非常喜欢这些间隙。

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))

enter image description here

关于r - 如何使用 ggplot2 在连续轴上指示组(例如染色体)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36038453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com