Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Installing and changing s in your plots comes now easy with the extras-package.
There is a excellent tutorial on the extras github site, still I will shortly demonstrate how it worked for me.
First, install the package and load it.
install.packages("extra") library(extra)
You can now install the desired system s (at the moment only TrueType s):
_import(pattern="[C/c]omic") _import(pattern="[A/a]rial")
The pattern
argument just specifies the s to be installed; if you leave it out, the function will search automatically and install all s (see the help
function for _import
in R.
You can now look at the s loaded to be used with R:
s() table()
Alright, if you want to use the s to display graphs on-screen (what you normally want to do, e.g. in the plots-window in RStudio), you have to load the s to the Windows device:
loads(device="win")
Now we can just plot a graph. I will use the ggplot2 package to do so (and this is taken nearly verbatim from the github-site mentioned earlier) :
library(ggplot2) ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + ggtitle("Fuel Efficiency of 32 Cars") + xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + theme(text=element_text(size=16, family="Comic Sans MS"))
Let’s now draw a chart using the xkcd-style. This has been debated on stackoverflow, and the guys there have come up with great examples! I basically just take their approach and modify it slightly to draw a graph on US GDP (gross domestic product) development. I download the data from the St. Louis Fed website, using the excellent quantmod
package.
But first I need to get the in xkcd style, and I’ve chosen to download it from here.
You now just have to install it, by right-clicking on the .ttf file and chose install.
_import(pattern="[H/h]umor") library(quantmod) getSymbols("GDPC1", src="FRED") data <- data.frame(time=index(GDPC1), GDP=GDPC1)
Now data is donwloaded, the is installed.
Next step: Create a ggplot2-theme that has xkcd “properties” – and this is what I’ve basically copied from stackoverflow. Note: Unlike on stackoverflow, I basically use only the . I do not jitter the line, since it is real data that is “jittered” anyway.
The rest is just ggplot2 plotting:
### XKCD theme theme_xkcd <- theme( panel.background = element_rect(fill="white"), #axis.ticks = element_line(colour=NA), panel.grid = element_line(colour="white"), #axis.text.y = element_text(colour=NA), axis.text.x = element_text(colour="black"), text = element_text(size=16, family="Humor Sans") ) ### Plot the chart p <- ggplot(data=data, aes(x=time, y=GDPC1))+ geom_line(colour="red", size=1)+ ggtitle("development of US gross domestic product") + theme_xkcd p
If you want to save this chart now as pdf, you need to do another step: use ggsave
. But you need to embed the s in the PDF, and therefore you have to install Ghostscript. Tell R where Ghostscript sits on your machine, and the just embed the s:
ggsave("_ggplot.pdf", plot=p, width=12, height=4) ## needed for Windows - make sure YOU have the correct path for your machine: Sys.setenv(R_GSCMD = "C:\\Program Files (x86)\\gs\\gs9.06\\bin\\gswin32c.exe") embed_s("_ggplot.pdf")
There might be some warnings issued, but usually it works.
And finally: I do not take any credit for this work, it’s basically the developers of the <code>extra</code> package and Mark Bulling on stackoverflow who made all this possible. Any remaining errors are mine.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.