R ggplot2:三向交互叠加条形图的分组条形图
我尝试在一个面板中绘制一个堆叠条形图+双向交互,包括4个实验的同一个图表。然而,我无法躲避依赖于其中一个自变量的条。下面是我的数据 首先,我通过下面的代码读取数据R ggplot2:三向交互叠加条形图的分组条形图,r,ggplot2,interaction,geom-bar,stacked-chart,R,Ggplot2,Interaction,Geom Bar,Stacked Chart,我尝试在一个面板中绘制一个堆叠条形图+双向交互,包括4个实验的同一个图表。然而,我无法躲避依赖于其中一个自变量的条。下面是我的数据 首先,我通过下面的代码读取数据 a<-read.table(file.choose(), header=T, dec=",") 你说的“它不起作用”是什么意思?当我加上这一点时,我得到了一个正确避开障碍的情节 如果只是想修改间距,可以通过向沿x轴绘制的因子添加其他(空)标高来实现。请注意,每个附加标高中有不同数量的空间: ggplot(data=b
a<-read.table(file.choose(), header=T, dec=",")
你说的“它不起作用”是什么意思?当我加上这一点时,我得到了一个正确避开障碍的情节
如果只是想修改间距,可以通过向沿x轴绘制的因子添加其他(空)标高来实现。请注意,每个附加标高中有不同数量的空间:
ggplot(data=b
, aes(x= factor(interaction(Gest, lag)
, levels = c(1.1,2.1," ",1.3,2.3," ",1.8,2.8))
,y=score, fill = variable)) +
geom_bar(stat="identity", position = "dodge") +
facet_wrap(~Exp., ncol=2) +
scale_x_discrete(drop = FALSE)
如果使用cowplot
软件包,则可以进一步执行几步。这里的优点是,如果单独绘制每个实验图,可以对lag
变量进行刻面。然后,你可以把它们缝合在一起。在这里,我抑制了单个图例,并在底部添加了一个共享的公共图例
sepPlots <- lapply(unique(b$Exp.), function(thisExp){
b %>%
filter(Exp. == thisExp) %>%
ggplot(aes(x = as.factor(Gest)
, y = score
, fill = variable)) +
geom_bar(stat="identity", position = "dodge") +
facet_wrap(~lag, nrow = 1
, labeller = label_both
, switch = "x") +
xlab("Gest") +
ggtitle(paste("Experiment:", thisExp))
})
expPlots <-
plot_grid(plotlist = lapply(sepPlots, function(x){x + guides(fill = "none")}))
plot_grid(expPlots
, get_legend(sepPlots[[1]] + theme(legend.direction = "horizontal"))
, nrow = 2
, rel_heights = c(1, 0.1))
seplots%
过滤器(Exp.==此Exp)%>%
ggplot(aes(x=平均因子(最大值))
,y=分数
,fill=变量)+
几何图形栏(stat=“identity”,position=“dodge”)+
面_包裹(~lag,nrow=1
,labeller=label\u两者
,switch=“x”)+
xlab(“Gest”)+
ggtitle(粘贴(“实验:”,thisExp))
})
expPlots你说的“它不起作用”是什么意思?当我加上这一点时,我得到了一个正确避开障碍的情节
如果只是想修改间距,可以通过向沿x轴绘制的因子添加其他(空)标高来实现。请注意,每个附加标高中有不同数量的空间:
ggplot(data=b
, aes(x= factor(interaction(Gest, lag)
, levels = c(1.1,2.1," ",1.3,2.3," ",1.8,2.8))
,y=score, fill = variable)) +
geom_bar(stat="identity", position = "dodge") +
facet_wrap(~Exp., ncol=2) +
scale_x_discrete(drop = FALSE)
如果使用cowplot
软件包,则可以进一步执行几步。这里的优点是,如果单独绘制每个实验图,可以对lag
变量进行刻面。然后,你可以把它们缝合在一起。在这里,我抑制了单个图例,并在底部添加了一个共享的公共图例
sepPlots <- lapply(unique(b$Exp.), function(thisExp){
b %>%
filter(Exp. == thisExp) %>%
ggplot(aes(x = as.factor(Gest)
, y = score
, fill = variable)) +
geom_bar(stat="identity", position = "dodge") +
facet_wrap(~lag, nrow = 1
, labeller = label_both
, switch = "x") +
xlab("Gest") +
ggtitle(paste("Experiment:", thisExp))
})
expPlots <-
plot_grid(plotlist = lapply(sepPlots, function(x){x + guides(fill = "none")}))
plot_grid(expPlots
, get_legend(sepPlots[[1]] + theme(legend.direction = "horizontal"))
, nrow = 2
, rel_heights = c(1, 0.1))
seplots%
过滤器(Exp.==此Exp)%>%
ggplot(aes(x=平均因子(最大值))
,y=分数
,fill=变量)+
几何图形栏(stat=“identity”,position=“dodge”)+
面_包裹(~lag,nrow=1
,labeller=label\u两者
,switch=“x”)+
xlab(“Gest”)+
ggtitle(粘贴(“实验:”,thisExp))
})
非常感谢马克,我正试图增加这些额外的差距。我将使用您提供的其他信息。再次感谢:)一个问题,您是否使用任何其他软件包来实现您提供的最后一个函数,因为当我粘贴最后一个绘图的第一个代码(从seplot开始)时,我得到了一个错误,这是一个有趣的错误(X[[I]],…):找不到函数“%>%”。无论如何谢谢你:)对不起%%
是管道字符,filter
函数来自dplyr
(它也将加载%%
,尽管它最初来自magrittr
)。通常我会更好地记住列出这些依赖项。非常感谢Mark,我正试图添加这些额外的空白。我将使用您提供的其他信息。再次感谢:)一个问题,您是否使用任何其他软件包来实现您提供的最后一个函数,因为当我粘贴最后一个绘图的第一个代码(从seplot开始)时,我得到了一个错误,这是一个有趣的错误(X[[I]],…):找不到函数“%>%”。无论如何谢谢你:)对不起%%
是管道字符,filter
函数来自dplyr
(它也将加载%%
,尽管它最初来自magrittr
)。通常我更喜欢记住列出那些依赖项。