2016-08-25 7 views
1

Ist es in ggplot2 möglich, eine Legende durch einen benutzerdefinierten Text zu ersetzen? Ich weiß über kommentieren, aber ich möchte nicht in ein Diagramm schreiben, sondern neben es (oder darunter) - genau, wo eine Legende wäre und es auf eine relativ einfache Art und Weise tun.r ggplot2 - benutzerdefinierter Text anstelle der Legende

z. in diesem einfachen Diagramm

library(data.table) 
library(ggplot2) 
library(ggrepel) 

id <- c(1:10) 
x1 <- sample(1:10, 10, replace=T) 
x2 <- sample(1:10, 10, replace=T) 
x3 <- sprintf("Point.%d",id) 
df<-data.frame(id,x1,x2,x3) 
dt<-data.table(df) 
setkeyv(dt,c("id")) 

p<-ggplot(data=dt,aes(x1,x2))+geom_point()+geom_text_repel(aes(label=x3))+ 
ggtitle("Graph")+xlab("X")+ylab("Y")+theme_bw() 
p 

Ich möchte etwas (kurz) um die Grafik schreiben daneben. Ich befürchte, dass dies in ggplot2 nicht einfach möglich ist, da es über seinen Zweck hinausgeht - aber mir sehr helfen würde.

+0

Haben Sie gesehen, dass dieser Stack überläuft [link] (http://stackoverflow.com/qu estitions/12409960/ggplot2-annotate-außerhalb der Handlung). Diese Frage kann ein Duplikat sein. – steveb

+0

Nein, ich möchte nicht in das Diagramm schreiben. Nur ein Text neben dem ganzen Diagramm. Ich weiß über Annotate Bescheid, hoffe aber, es könnte ein besserer Weg sein, die Legende (irgendwie) zu benutzen. – Martin

+1

Andere Möglichkeiten [hier] (http://stackoverflow.com/questions/32506444/ggplot-function-to-add-text-just-below-legend). – Henrik

Antwort

7

könnte dies der einfachste Weg, sein

gridExtra::grid.arrange(ggplot2::ggplot(), right = "this is a note") 

enter image description here

durch Standardtext 90 Grad gedreht wird, dies explizit eine textGrob verwenden zu überschreiben,

gridExtra::grid.arrange(ggplot2::ggplot(), right = grid::textGrob("this is a note")) 

enter image description here

+0

Danke, das ist genau das, was ich gesucht habe. – Martin

Verwandte Themen