这是我的第一个问题。请对(R-)新手好:)
我正在尝试从不同的数据帧安排多个图,以使它们共享一个共同的y轴,而x轴标签/数字仅显示在底部图下方。
我的数据框包括以下几列: 测量时间( messzeitpunkt_s ),平均值( z_mean ),置信区间的上限( z_ci_up ),置信区间的下限(< em> z_ci_low )。
这是我尝试过的:
`
p_neutral <- ggplot(neutral_all_mean_ci, aes(messzeitpunkt_s, z_mean, colour = " Mittelwert ")) +
theme_bw()+
geom_ribbon(aes(messzeitpunkt_s, ymax = z_ci_up, ymin = z_ci_low), fill = "#FCE5D7", alpha=0.8) +
labs(x = "Messzeit [s]",y = "Neutral")+
geom_line() +
geom_line(aes(y = z_ci_low, colour =" 95% CI ")) +
geom_line(aes(y = z_ci_up, colour = " 95% CI ")) +
theme(legend.position = "none") +
scale_color_manual(values=c("#F7B383", "#3074B3", "#F7B383"))
`
我使用相同的代码创建情节 p_anger,p_disgust,p_fear,p_happiness,p_sadness,p_surprise ,只是替换了ggplot中的数据框 neutral_all_mean_ci - anger_all_mean_ci 等功能,并更改相应的标签。
ggarrange(p_neutral, p_anger, p_disgust, p_fear, p_happiness, p_sadness, p_surprise, ncol=1)
我最终得到了这个plot。
现在,我希望有一个共同的y轴比例尺(以便使图显示相同的范围),而x轴标签/数字仅在底部图。
有人可以帮我吗?预先感谢!
答案 0 :(得分:0)
欢迎使用StackOverflow!
我认为您可以在所有图中使用scale_y_continuous(limits = c(-0.5, 1.5))
,而只能在最后labs(x="Messzeit [s]")
中使用geom_line()
,如下所示:
p_neutral <- ggplot(neutral_all_mean_ci, aes(messzeitpunkt_s, z_mean, colour = " Mittelwert ")) +
theme_bw()+
geom_ribbon(aes(messzeitpunkt_s, ymax = z_ci_up, ymin = z_ci_low), fill = "#FCE5D7", alpha=0.8) + scale_y_continuous(limits = c(-0.5, 1.5)) +
labs(x = "",y = "Neutral")+ scale_y_continuous(limits = c(-0.5, 1.5)) +
geom_line() + labs(x="") +
geom_line(aes(y = z_ci_low, colour =" 95% CI ")) + scale_y_continuous(limits = c(-0.5, 1.5)) + labs(x="") +
geom_line(aes(y = z_ci_up, colour = " 95% CI ")) + scale_y_continuous(limits = c(-0.5, 1.5)) + labs(x="Messzeit [s]") +
theme(legend.position = "none") +
scale_color_manual(values=c("#F7B383", "#3074B3", "#F7B383"))
让我知道这是否对您有帮助,因为如果没有您的数据集,我将无法运行它。