gpt4 book ai didi

r - 不均匀类别上的小平面条形图

转载 作者:行者123 更新时间:2023-12-01 13:40:37 28 4
gpt4 key购买 nike

这是一个示例 data.frame,它有 30 个独特的样本(ID 1 到 30),每个样本有三个测量值(在三个不同的阈值(“G1”列);5e-03、5e-05、5e- 08). 90 个观测值中的每一个都有一个 p 值(P 列)。最后,三十个样本中的每一个都可以属于十个不同类别之一('G2')[抱歉所有数字变量!]

 # example data.frame
df <- data.frame(
'ID' = as.character(unlist(lapply(seq(1:30), function(x) rep(x,3)))),
'P' = runif(n = 90, min = 0, max = 1),
'G1' = as.character(c('5e-03','5e-05','5e-08')),
'G2' = as.character(unlist(lapply(sample(1:10, size = 30, replace = T), function(x) rep(x,3))))
)

我可以使用这个命令生成一个漂亮的条形图;

ggplot(df, aes(x = interaction(ID,G2), y = P, fill = G2)) +
geom_bar(stat = 'identity') +
coord_flip() +
facet_grid(. ~ G1)

看起来像这样:

Plot 1: image with one facet, and 'G2' visualised using colour

但是,我真正想做的是有两个方面;列上的“G1”(目前如此),而不是使用条形颜色来划分“G2”变量,我想要 G2 上的第二个水平面。这是我尝试过的:

ggplot(df, aes(x = interaction(ID,G2), y = P, fill = G2)) +
geom_bar(stat = 'identity') +
coord_flip() +
facet_grid(G2 ~ G1)

这是不对的。当我在 G2 上分面时,它在每个分面绘制所有样本。这很难看,因为每个样本只能属于一个 G2 类别。如何生成第二个方面,其中仅绘制属于该组的条形图?我尝试调整 facet_grid 中的“drop”、“scale”和“space”变量,但它并没有改善。

This是我正在寻找的 - 我已经在应该位于构面中的绘图部分上手动绘制了矩形。它与图 1 基本相同,只是条形图被拆分为 G2 小平面。

最佳答案

首先请注意,由于您使用的是 G2 和 G1,因此您不再需要 x=interaction(ID,G2):x=ID 就足够了.

默认情况下,绘图的所有方面在其 x 轴和 y 轴上共享相同的比例。但是您可以使用 scales 参数更改它

ggplot(df, aes(x = ID, y = P, fill = G2)) +
geom_bar(stat = 'identity') +
facet_grid(G1 ~ G2, scales="free_x")

请注意,我在网格定义中交换了 G1 和 G2。不过,我认为不可能让它与 coord_flip() 一起工作。

关于r - 不均匀类别上的小平面条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40607487/

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