gpt4 book ai didi

r - 为什么这个 facet_grid 不删除列?

转载 作者:行者123 更新时间:2023-12-01 11:42:47 25 4
gpt4 key购买 nike

你好,有这个数据集:

tdat=structure(list(Condition = structure(c(1L, 3L, 2L, 1L, 3L, 2L, 
1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L,
3L, 2L, 1L, 3L, 2L), .Label = c("AS", "Dup", "MCH"), class = "factor"),
variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L), .Label = c("Bot", "Top", "All"), class = "factor"),
value = c(1.782726022, 1, 2.267946449, 1.095240234, 1, 1.103630141,
1.392545278, 1, 0.854984833, 4.5163067, 1, 4.649271897, 0.769428018,
1, 0.483117123, 0.363854608, 1, 0.195799358, 0.673186975,
1, 1.661568993, 1.174998373, 1, 1.095026419, 1.278455823,
1, 0.634152231)), .Names = c("Condition", "variable", "value"
), row.names = c(NA, -27L), class = "data.frame")

> head(tdat)
Condition variable value
1 AS Bot 1.782726
2 MCH Bot 1.000000
3 Dup Bot 2.267946
4 AS Bot 1.095240
5 MCH Bot 1.000000
6 Dup Bot 1.103630

您可以使用以下代码绘制它:

ggplot(tdat, aes(x=interaction(Condition,variable,drop=TRUE,sep='-'), y=value,
fill=Condition)) +
geom_point() +
scale_color_discrete(name='interaction levels')+
stat_summary(fun.y='mean', geom='bar',
aes(label=signif(..y..,4),x=as.integer(interaction(Condition,variable))))+
facet_grid(.~variable)

enter image description here

但如您所见,它不会从每个方面删除未使用的列,您知道为什么吗?

最佳答案

您会在绘图上显示所有级别,因为使用了所有级别。如果根本不使用,级别就会下降。要删除每个方面的级别,请将 scale="free_x" 添加到 facet_grid()。但这在特定情况下不起作用,因为您在 ggplot()stat_summary() 调用中使用了不同的 x 值语句。我建议在绘制交互之前添加新列。

tdat$int<-with(tdat,interaction(Condition,variable,drop=TRUE,sep='-'))
ggplot(tdat,aes(int,value,fill=Condition))+
stat_summary(fun.y='mean', geom='bar')+
geom_point()+
facet_grid(.~variable,scales="free_x")

enter image description here

在这种情况下,您可以不用 interaction() 来简化您的代码,因为您还使用了 facet_grid()

ggplot(tdat,aes(Condition,value,fill=Condition))+
stat_summary(fun.y='mean', geom='bar')+
geom_point()+
facet_grid(.~variable)

enter image description here

关于r - 为什么这个 facet_grid 不删除列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17888456/

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