当 x 轴值为日期时难以注释图
Difficulty annotating plot when x axis values are dates
这是我的数据框:
> 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"))
我有几个情节要并排展示。因此,我试图通过将文本(对于此图 "a)")放在左上角来注释每个图。我试图创建一个注释层,但我很难指定一个 x 位置。如有任何帮助,我们将不胜感激,谢谢!
编辑:这是一张手动编辑的照片,显示我想放在情节上的内容:
您可以使用注释来实现您的目标:
solitaryrecruits +
annotate(geom="text",x=as.Date("2014-10-05"),
y=25,label="a",fontface="bold")
重要的一点是您将 x 坐标作为日期。
或者,您可以通过给地块命名来标记它们
solitaryrecruits + labs(title="a")
你可以这样做:
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)
这是我的数据框:
> 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"))
我有几个情节要并排展示。因此,我试图通过将文本(对于此图 "a)")放在左上角来注释每个图。我试图创建一个注释层,但我很难指定一个 x 位置。如有任何帮助,我们将不胜感激,谢谢!
编辑:这是一张手动编辑的照片,显示我想放在情节上的内容:
您可以使用注释来实现您的目标:
solitaryrecruits +
annotate(geom="text",x=as.Date("2014-10-05"),
y=25,label="a",fontface="bold")
重要的一点是您将 x 坐标作为日期。
或者,您可以通过给地块命名来标记它们
solitaryrecruits + labs(title="a")
你可以这样做:
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)