Подтвердить что ты не робот

Сложность, аннотирующая график, когда значения оси x являются датами

Вот мой кадр данных:

> s
         Date Average Treatment        SE
1  2014-10-15   4.875         1 1.6304852
2  2014-11-12   6.250         1 0.9955257
3  2014-12-11   0.250         1 0.1636634
4  2015-02-11   1.000         1 0.5000000
5  2015-03-09   0.000         1 0.0000000
6  2014-10-15  22.750         2 3.4369318
7  2014-11-12  10.625         2 2.1207942
8  2014-12-11   7.500         2 2.9215945
9  2015-02-11   7.750         2 2.3126207
10 2015-03-09   0.125         2 0.1250000

Я создаю график, используя этот код:

s$Date <- as.Date(s$Date)
s$Treatment <- factor(s$Treatment)
cols <- c("#000000","#F5F5DC")
library(ggplot2)
solitaryrecruits <- (ggplot(s, aes(x=Date, y=Average, fill=Treatment)) + 
  geom_bar(width=20, position=position_dodge(20),
           stat="identity", colour="black") +
  geom_errorbar(aes(ymin=Average, ymax=Average+SE),
                width=10,                    
                position=position_dodge(20))+
  scale_fill_manual(name="Treatment", labels=c("No Cage", "Cage"), values = cols) +
  labs(x=("Panel Date"), y=expression(bold(paste("Mean Num. Ind. ( " ,cm^2, ")", sep = "")))) +
  theme_bw() +
  theme(axis.text=element_text(size=14),
        legend.title=element_text(size=14),
        legend.text=element_text(size=12),
         axis.title=element_text(size=16,face="bold"),
        legend.justification = c(1, 1), legend.position = c(1, 1),
        axis.title.x = element_text(vjust=-0.2),
        axis.title.y = element_text(vjust=+0.6))) +
  guides(fill = guide_legend(override.aes = list(colour = NULL))) +
 theme(legend.key = element_rect(colour = "black"))

enter image description here

У меня есть несколько сюжетов, которые я собираюсь представить рядом друг с другом. Поэтому я пытаюсь аннотировать каждый сюжет, помещая текст (для этого сюжета "a" ) в верхнем левом углу. Я попытался создать слой аннотации, но я стараюсь указать позицию x. Любая помощь будет принята с благодарностью, спасибо!

Изменить: вот отредактированная вручную фотография, чтобы показать, что я хочу разместить на сюжете:

enter image description here

4b9b3361

Ответ 1

Вы можете использовать аннотацию для достижения своей цели:

solitaryrecruits +
    annotate(geom="text",x=as.Date("2014-10-05"),
    y=25,label="a",fontface="bold")

Важно то, что вы даете x-координату в качестве даты.

В качестве альтернативы вы можете пометить свои сюжеты, указав им название

solitaryrecruits + labs(title="a")

Ответ 2

Вы можете сделать это следующим образом:

ggplot(s, aes(x=Date, y=Average, fill=Treatment)) + annotate("a)", 
x = as.POSIXct(-Inf, origin = '2014-10-15'), y = Inf, hjust = 1, vjust = 1)