Voglio tracciare un'etichetta su una linea in un grafico monocromatico. Quindi ho bisogno di un piccolo bordo bianco su ogni lettera dell'etichetta.R: C'è un modo per mettere bordi, ombre o buffer attorno alle etichette di testo en R plot?
Il bordo o lo sfondo del rettangolo dell'etichetta di testo non è utile perché nasconde un sacco di dati tracciati.
C'è un modo per mettere bordi, ombre o buffer attorno alle etichette di testo en R plot?
EDIT:
shadowtext <- function(x, y=NULL, labels, col='white', bg='black',
theta= seq(pi/4, 2*pi, length.out=8), r=0.1, ...) {
xy <- xy.coords(x,y)
xo <- r*strwidth('x')
yo <- r*strheight('x')
for (i in theta) {
text(xy$x + cos(i)*xo, xy$y + sin(i)*yo, labels, col=bg, ...)
}
text(xy$x, xy$y, labels, col=col, ...)
}
pdf(file="test.pdf", width=2, height=2); par(mar=c(0,0,0,0)+.1)
plot(c(0,1), c(0,1), type="l", lwd=20, axes=FALSE, xlab="", ylab="")
text(1/6, 1/6, "Test 1")
text(2/6, 2/6, "Test 2", col="white")
shadowtext(3/6, 3/6, "Test 3")
shadowtext(4/6, 4/6, "Test 4", col="black", bg="white")
shadowtext(5/6, 5/6, "Test 5", col="black", bg="white", theta = seq(pi/4, 2*pi, length.out=24))
dev.off()
Il codice sopra usa la soluzione da koekenbakker. Questo va bene per la grafica PNG.
Ho bisogno di un approccio diverso per alta risoluzione o vettoriale PDF come questo https://docs.google.com/file/d/0BwpJogoN4kzHUEkwMEI2Rzg2T0k/edit?pli=1
Ci sono molte funzioni di tracciato diversi e sistemi grafici a R. Si prega di essere molto più preciso su cosa esattamente tramando comandi che si sta utilizzando. Ancora meglio, includi un [esempio riproducibile] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – MrFlick
Qual è il problema con il pdf? Intendi la risoluzione? È possibile adattare il parametro theta per una risoluzione maggiore. Lo cambierò nella mia risposta. – koekenbakker
hai ragione. Nel mio esempio ho provato un theta di 24 articoli e non era abbastanza. Ma nel tuo esempio funziona perfettamente con 50. Grazie – fnd