gpt4 book ai didi

r - 具有堆叠和分组选项的条形图,没有面网格

转载 作者:行者123 更新时间:2023-12-01 09:46:29 28 4
gpt4 key购买 nike

我正在尝试使用以下数据集制作堆叠和分组的条形图:

dfplot  <- data.frame(organisms=c("M.musculus","D.melanogaster" ,"H.sapiens","O.sativa","S.pombe","C.familiaris",
"G.gallus","P.falciparum","A.thaliana","C.elegans","D.rerio","B.taurus","S.cerevisiae","R.norvegicus","C.intestinalis","B.subtilis","E.coli"),
KEGGv2=c(20,7,21,126,106,62,26,80,5,5,13,306,8,35,32,104,107),
KEGGv1=c(286,124,289,0,0,244,135,0,121,124,148,0,101,271,87,0,0),
Reactome=c(358,146,596,115,54,306,370,23,155,112,365,341,52,364,0,0,0))

# Melt the dataframe
melted <- melt(dfplot, "organisms")

# Reformat the data labels
melted$cat <- ''
melted[melted$variable == 'Reactome',]$cat <- "Reactome"
melted[melted$variable != 'Reactome',]$cat <- "KEGG"


ggplot(melted, aes(x=cat, y=value, fill=variable)) +
geom_bar(stat = 'identity', position = 'stack') +
facet_grid(~ organisms)+
scale_fill_manual(values=c("deepskyblue4", "lightblue1", "olivedrab2")) +
labs(y = "Number of Pathways") +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
legend.title=element_blank(),
strip.text.x = element_blank(),
strip.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black"))

我的输出如下:

enter image description here

我为每个生物体使用了一个 facet_grid,因为我想在 stack(对于 KEGGv1 和 KEGGv2)之间进行混合,然后将其与另一组 Reactome 分组。但是,在进行熔化时,x 轴每个 facet_grid 将有两个标签(KEGG 和 Reactome,这是从熔化 [cat] 中获得的变量)。我不想要那个标签,所以我删除了它们。

我想做的是为每个分组提供生物体名称,因此 17 个分组条中的每一个都将具有相应生物体的名称**。因此,我错过了这一点,我尝试了几种方法,但找不到正确的方法。

提前致谢

最佳答案

您可以做两件事来完成这项工作:

  1. 旋转构面的标签,使其以 90 度角绘制
  2. 使用 facet_grid 中的 switch = 'x' 参数绘制图形下方的构面标签。

这是完整的例子:

  ggplot(melted, aes(x=cat, y=value, fill=variable)) + 
geom_bar(stat = 'identity', position = 'stack') +
facet_grid(~organisms, switch = 'x')+
scale_fill_manual(values=c("deepskyblue4", "lightblue1", "olivedrab2")) +
labs(y = "Number of Pathways") +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
legend.title=element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line.y = element_line(colour = "black"),
strip.text = element_text(angle = 90))

enter image description here

我保留了默认的阴影背景,但您可以根据自己的喜好轻松设置样式。

方法二

您可能需要考虑旋转绘图。这需要您在调用构面之前使用 coord_flip 翻转绘图的坐标。当我们面向另一个方向时,我们将 facet 参数更改为 facet_grid(organisms~.)。所有其他引用 x 或 y 的参数都被交换:

  ggplot(melted, aes(x=cat, y=value, fill=variable)) + 
geom_bar(stat = 'identity', position = 'stack') +
coord_flip() +
facet_grid(organisms~., switch = 'y') +
scale_fill_manual(values=c("deepskyblue4", "lightblue1", "olivedrab2")) +
labs(y = "Number of Pathways") +
theme(axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
legend.title=element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line.x = element_line(colour = "black"),
strip.text.y = element_text(angle = 180))

enter image description here

关于r - 具有堆叠和分组选项的条形图,没有面网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47415024/

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