2016-04-28 7 views
0

Ich würde gerne meinen Plot wie "Plot 1(p = 0,05)" nennen. Bitte beachten Sie, dass der Titel bolded ist und p-Wert ist kursiv.R verketten unterschiedlich stilisierte Zeichen

Ich konnte manuell nach Inhalt und etwas tun, wie Plotten:

text(x1, y, "Plot 1", font=2) 
text(x2, y, "(p=0.05)", font=3) 

Es ist jedoch umständlich zu berechnen Koordinaten so möchte ich etwas tun:

title <- (string concatenation here?) 
plot(..., main=title) 

ich gescheitert Finden Sie in dieser Angelegenheit Hilfe, lassen Sie diese Frage hier.

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

0

Ich würde vorschlagen, die ?plotmath Ausdrücke zu verwenden, um Ihre Formatierung anstelle der font= Parameter zu tun. Zum Beispiel

plot(c(1,3), c(1,3)) 
text(2,2,expression(bold("Plot 1") ~ (italic("p=.05")))) 

Ergebnisse in

bold and italic text

Hinweis, dass man nicht paste() Ausdrücke zusammen so leicht wie können Sie Strings. Oft versuchen die Leute dann aber Variablen für die Teile in Anführungszeichen einzugeben, aber um das zu tun, müssen Sie einen Ausdruck mit bquote() oder substitute() erstellen. Zum Beispiel

plotname <- "Plot 1" 
pvalue <- paste0("p=", formatC(.04944, digits=2, format="f")) 
text(2,2,bquote(bold(.(plotname)) ~ (italic(.(pvalue))))) 
+0

Dank! Dies ist ein sehr guter Ausgangspunkt. Kannst du mir noch einen Vorschlag machen, wie der Text an die oberste Stelle gesetzt wird, wenn die "main =" Funktion funktioniert? Der Text von der "Text" -Funktion wird hinter der Plot-Ebene platziert, so dass der Text selbst dann, wenn ich die Y-Koordinate einstelle, mit einem Plot-Feld bedeckt ist, d. H. Unsichtbar. :( – user4143385

+0

Oh, ich lege einfach deine Lösung nach "main =" und es funktioniert!: D Danke nochmal! – user4143385

0

Es ist ziemlich einfach. Versuchen Sie, Ausdrücke in main = einzufügen.

wie folgt aus:

x<- seq(6:1) 
y<-c(5,3,77,6,5,1) 
main="title", sub="subtitle" 
plot(x,y, main=expression(paste(bold("Plot1"), italic("(p=0.05)")))) 

enter image description here

Verwandte Themen