2015-03-27 5 views
5

Mi chiedo se sia possibile disegnare il testo con una struttura in R, in modo che il testo sia leggibile indipendentemente dallo sfondo (come il testo sui meme). Il seguente (ovviamente) non riesce:Etichette di testo con contorno 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") 

Il risultato non è spettacolare:

enter image description here

Chiaramente, posso creare prima uno sfondo bianco o semi-trasparente, ma vorrei davvero preferirei di gran lunga avere dei bei contorni

+0

questo link possono aiutare: http://stackoverflow.com/questions/7734535/control-font-thickness-without-changing-font -size –

+0

Alcune possibilità per 'ggplot' [qui] (http://stackoverflow.com/questions/10686054/outlined-text-with-ggplot2/10691826#10691826). – Henrik

risposta

7

Prova shadowtext dal pacchetto TeachingDemos:

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

shadow text

+0

La funzione 'shadowtext' è interessante perché fondamentalmente è l'intuizione dell'OP, [appena ripetuta un paio di volte] (https://github.com/cran/TeachingDemos/blob/master/R/shadowtext.R). – Thomas

+0

Non proprio, l'OP sta ridimensionando le dimensioni del testo, ma shadowtext utilizza più copie delle stesse dimensioni del testo principale. Il ridimensionamento non funziona per creare ombre sui fori interni. – Spacedman

+0

Perfetto! Grazie mille. – January