2015-03-27 11 views
5

Ich frage mich, ob es möglich ist, Text mit einem Umriss in R zu zeichnen, so dass der Text unabhängig vom Hintergrund lesbar ist (wie der Text auf Memen). Die folgend (natürlich) nicht:Textbeschriftungen mit Umriss in R

# prepare a colorful background 
randcolors <- sprintf("#%02X%02X%02X99", sample(1:255, 1000, replace=T), sample(1:255, 1000,replace=T), sample(1:255, 1000, replace=T)) 
plot(NULL, xlim=c(0,1), ylim=c(0,1), xaxt="n", bty="n", yaxt="n") 
points(runif(1000, 0, 1), runif(1000, 0, 1), cex=runif(1000, 0.5, 5), col= randcolors, pch= 19) 
text(0.5, 0.5, "test text", cex= 5) 
text(0.5, 0.5, "test text", cex= 4.5, col="white") 

Das Ergebnis ist nicht spektakulär:

enter image description here

Klar, ich kann zunächst einen weißen oder halbtransparenten Hintergrund erstellen, aber ich würde es vorziehen, eigentlich viel zu habe schöne Umrisse.

+0

Link helfen können: http://stackoverflow.com/questions/7734535/control-font-thickness-without-changing-font -size –

+0

Einige Möglichkeiten für 'ggplot' [hier] (http://stackoverflow.com/questions/10686054/outlined-text-with-ggplot2/10691826#10691826). – Henrik

Antwort

7

Try shadowtext vom TeachingDemos Paket:

shadowtext(0.5, 0.5, "test text", cex= 4.5, col="white" , r=0.3) 

shadow text

+0

Die 'Shadowtext'-Funktion ist interessant, weil es im Grunde die Intuition des OP ist [nur einige Male wiederholt] (https://github.com/cran/TeachingDemos/blob/master/R/shadowtext.R). – Thomas

+0

Nicht wirklich, das OP skaliert die Textgröße, aber Shadowtext verwendet mehrere Kopien in der gleichen Größe wie der Haupttext. Die Skalierung funktioniert nicht, um Schatten auf internen Löchern zu erzeugen. – Spacedman

+0

Perfekt! Vielen Dank. – January

Verwandte Themen