I'd like to know if there is a way to draw "outlined text" with ggplot2, for example black text with a small white border, in order to make it easily readable on backgrounds such as maps.
Ideally I'd like to achieve the same type of labels you can see on Google Maps :
Thanks in advance for any hints !
Much simplier solution is to use shadowtext
library and use geom_shadowtext
instead of geom_text
Here is an approach that implements the general idea from the shadowtext
function in the TeachingDemos
package. The code for the middle part could be wrapped into a function to simplify some things. The example is blatantly stolen from Richie Cotton's answer:
d <- diamonds[sample(nrow(diamonds), 10), ] p <- ggplot(d, aes(carat, price) ) theta <- seq(pi/8, 2*pi, length.out=16) xo <- diff(range(d$carat))/200 yo <- diff(range(d$price))/200 for(i in theta) { p <- p + geom_text( bquote(aes(x=carat+.(cos(i)*xo),y=price+.(sin(i)*yo),label=cut)), size=12, colour='black' ) } p <- p + geom_text( aes(label=cut), size=12, colour='white' ) p <- p + opts( panel.background=theme_rect(fill='green' ) ) print(p)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With