ggplot2在构面面板中移动x轴标签

时间:2018-08-18 16:59:41

标签: r ggplot2

我真的找不到答案。

数据

x += '<i class="far fa-play-circle" onclick="goLocation(\'' + myObj[i].video_id + '\')"></i>'

这是代码

subj <- c(rep(11,3),rep(12,3),rep(14,3),rep(15,3),rep(17,3),rep(18,3),rep(20,3))
group <- c(rep("u",3),rep("t",6),rep("u",6),rep("t",6))
time <- rep(1:3,7)
mean <- c(0.7352941, 0.8059701, 0.8823529, 0.9264706, 0.9852941, 0.9558824, 0.7941176, 0.8676471, 0.7910448, 0.7058824, 0.8382353, 0.7941176, 0.9411765, 0.9558824, 0.9852941, 0.7647059, 0.8088235, 0.7968750, 0.8088235, 0.8500000, 0.8412698)
df <- data.frame(subj,group,time,mean)
df$subj <- as.factor(df$subj)
df$time <- as.factor(df$time)

我想要的是在面板上显示x轴标签编号12、14等,并且它们应该像在x轴上一样对齐。

否则,我将不得不在顶部移动x轴并卸下面板。

1 个答案:

答案 0 :(得分:3)

所以我明白了您的要求,您可以做到,但是,这很武断

Timer(Memoize(pass_and_square_time))

相反,我建议使用@Timer @Memoize def pass_and_square_time(seconds): time.sleep(seconds) return seconds**2 标记列,以使它们始终以正确的位置结束。从长远来看,它们也会看起来更好。

library(tidyverse)

my_labs <- c(t = "12                14                18                20", 
             u = "11                      15                      17")
ggplot(df, aes(x=subj, y=mean*100, fill=time)) +
  geom_bar(stat="identity", position="dodge") +
  facet_wrap(~ group, scale="free", labeller = as_labeller(my_labs))

或者,如果您确实要在顶部寻找第二个轴,

geom_text

reprex package(v0.2.0)于2018-08-18创建。