Я создаю трехгранный график с ggplot
со следующими данными
library(ggplot2)
test<-as.data.frame(c(1,2,3,4,1,2,3,4,1,2,3,4))
colnames(test)<-"e12"
test$e23<-c(NaN,NaN,NaN,NaN,2,3,4,5,2,3,4,5)
test$e34<-c(NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,3,4,5,6)
test$Age<-c(1,2,3,4,1,2,3,4,1,2,3,4)
test$facet<-c(1,1,1,1,2,2,2,2,3,3,3,3)
ggplot(test, aes(x=Age)) +
facet_grid( ~ facet) +
geom_line(aes(y = e12), size=0.25, colour="red", linetype="dashed") +
geom_point(aes(y = e12), size=2.5, shape=21, fill="red", colour=NA) +
geom_line(aes(y = e23), size=0.25, colour="blue", linetype="dashed") +
geom_point(aes(y = e23), size=2.5, shape=21, fill="blue", colour=NA) +
geom_line(aes(y = e34), size=0.25, colour="green", linetype="dashed") +
geom_point(aes(y = e34), size=2.5, shape=21, fill="green", colour=NA) +
annotate("pointrange", x=3.05, y=6.1, ymin=6.1, ymax=6.1, colour="red", size=0.5) +
annotate("segment", x=2.8, xend=3.4, y=6.1, yend=6.1, colour="red", size=0.5, linetype="dashed") +
annotate("text", x=3.6, y=6.1, parse=T, label="e[1%;%2]", size=3.1, family="Calibri", colour="black") +
theme(strip.text = element_text(face="bold", size=rel(1)),
strip.background = element_rect(fill="white", colour="white", size=1)) +
scale_x_continuous(limits=c(0.5,4.5), breaks=seq(1, 4, 1), minor_breaks=seq(1, 4, 1), expand = c(0, 0)) +
scale_y_continuous(limits=c(0,6.5), breaks=seq(0, 6.5, 1), minor_breaks=seq(0,6.5,0.2), expand = c(0, 0))
Однако это создает 2 проблемы:
Я хотел бы, чтобы аннотации (диапазон точек, сегмент и текст) отображались только в одном аспекте. Я видел, как создать фрейм данных для аннотирования только текста в одном аспекте, но хотел бы знать, возможно ли это для сегментов и диапазонов точек.
Текст должен читаться как e1;2 с 1;2 в нижнем индексе, несмотря на то, что ставится ";" в математике вызывает ошибки.
legend.position
было бы предпочтительнее. - person user2568648   schedule 29.04.2015