Je me gratte la tête depuis des heures. Ce que je jusqu'à présentggplot2 dans R: annoter en dehors de l'intrigue et souligner le texte
library(ggplot2)
library(grid)
all_data = data.frame(country=rep(c("A","B","C","D"),times=1,each=20),
value=rep(c(10,20,30,40),times=1,each=20),
year = rep(seq(1991,2010),4))
# PLOT GRAPH
p1 <- ggplot() + theme_bw() + geom_line(aes(y = value, x = year,
colour=country), size=2,
data = all_data, stat="identity") +
theme(plot.title = element_text(size=18,hjust = -0.037), legend.position="bottom",
legend.direction="horizontal", legend.background = element_rect(size=0.5, linetype="solid", colour ="black"),
legend.text = element_text(size=16,face = "plain"), panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.border = element_blank(),axis.line = element_line(colour = "black"),legend.title = element_blank(),
axis.text=element_text(size=18,face = "plain"),axis.title.x=element_text(size=18,face = "plain", hjust = 1,
margin = margin(t = 10, r = 0, b = 0, l = 0)),
axis.title.y=element_blank())
p1 <- p1 + ggtitle("Index")
p1 <- p1 + xlab("Year")
p1 <- p1 + scale_x_continuous(expand=c(0,0),breaks=seq(1991,2010,4))
p1 <- p1 + theme(plot.margin=unit(c(5.5, 300, 5.5, 5.5), "points"))
p1 <- p1 + geom_text(aes(label = "Country", x = 2011, y =
max(all_data$value)+10), hjust = 0, vjust = -2.5, size = 6)
p1 <- p1 + geom_text(aes(label = "Average", x = Inf, y =
max(all_data$value)+10), hjust = -1.5, vjust = -2, size = 6)
p1 <- p1 + geom_text(aes(label = all_data$country, x = 2011, y =
all_data$value), hjust = 0, size = 6)
p1 <- p1 + geom_text(aes(label = as.character(all_data$value), x = Inf,
y = all_data$value), hjust = -5, size = 6)
p1 <- p1 +
annotate("segment",x=2011,xend=2014,y=Inf,yend=Inf,color="black",lwd=1)
# Override clipping
gg2 <- ggplot_gtable(ggplot_build(p1))
gg2$layout$clip[gg2$layout$name == "panel"] <- "off"
grid.draw(gg2)
Ce que je me bats avec est la suivante:
1) comment annoter en dehors du terrain, soulignent à la fois « Pays » et « moyenne "sans étendre l'axe des x.
2) N'y a-t-il pas une approche plus systématique du processus d'annotation complet? Ajuster le poids et visser par inspection visuelle semble très gênant.
Toute aide est appréciée!
Si vous ouvrez "Sortie", vous remarquerez que "Pays" et toutes les valeurs ci-dessous (A, B, C, D) "étendre" l'axe des x. Je voudrais les tracer de façon à ce qu'ils soient après le titre "Année" sur l'axe des x et l'axe des abscisses jusqu'en 2009. Deuxièmement, je voudrais souligner les chaînes "Country" et "Average" ci-dessus, pour le moment Je souligne seulement "Pays" et j'ai du mal à souligner "Moyenne". –