我有以下数据框:
Parameter<-c("As","Hg","Pb")
Loc1<-c("1","10","12")
Loc2<-c("3","14","9")
Loc3<-c("5","12","8")
Loc4<-c("9","20","6")
x<-data.frame(Parameter,Loc1,Loc2,Loc3,Loc4)
x$Loc1<-as.numeric(x$Loc1)
x$Loc2<-as.numeric(x$Loc2)
x$Loc3<-as.numeric(x$Loc3)
x$Loc4<-as.numeric(x$Loc4)
我建立了一个具有4个方面的图,每个位置一个图,以显示每个位置不同的重金属浓度。
melt<-melt(x, id=c("Parameter"))
ggplot(melt, aes(x = Parameter, y = value, fill = variable)) +
geom_bar(stat = "identity", position = "dodge")+
facet_grid(. ~ variable)
但是,我想在4个方面中的每个方面写文本。我尝试过geom_text
,但无法弄清楚如何将不同的文本放入每个构面并将其放置在特定位置。
答案 0 :(得分:1)
刻面中的带状名称从列variable
中的条目中选取;因此在绘制之前,我将重命名variable
的条目。
这是一个例子
x %>%
gather(variable, value, -Parameter) %>%
mutate(variable = sub("Loc", "Location ", variable)) %>%
ggplot(aes(x = Parameter, y = value, fill = variable)) +
geom_bar(stat = "identity", position = "dodge")+
facet_grid(. ~ variable)
如果您想向特定面板添加文本,建议您将信息存储为新的data.frame
。为了确保将标签放置在适当的构面内,您需要确保df.txt
的{{1}}列与源数据中variable
列中的条目相匹配(即该列用于分面)。
variable