Idr Idr - 3 months ago 13
Markdown Question

Graph subtle changes after using knitr from markdown

Using

knitr
and
markdown
packages to weave Rmd files to markdown and then html is producing some unexpected behavior in the way that ggplot2 graphs are appearing in the final html file.

For example, using the following Rmd file diamond.Rmd

# ggplot2 graph shows up fainter, and text smaller

```{r echo=FALSE, message=FALSE, warning=FALSE}
opts_chunk$set(fig.width=18, fig.height=10)
require(ggplot2)
```

***

# Simple Plot
```{r echo=FALSE, message=FALSE, warning=FALSE}
data(diamonds)
g <- ggplot(diamonds, aes(carat, depth, colour=color)) + geom_point() + facet_wrap(~cut)
g
```


with this file knit.R

require(markdown)
require(knitr)
knit('diamonds.Rmd')
markdownToHTML('diamonds.md', 'diamonds.html', options=c('base64_images'))
browseURL(paste('file://', file.path(getwd(), 'diamonds.html'), sep=''))


I've taken a screeenshot of the plot in the html file and included it below (is there a better way to show this?):

plot from html file

The plot inside the html file is lighter, ie the color is less dark.
Also, the text on the plot, including the axis labels and the tick mark labels are smaller and lighter, making them very difficult to read.

If you look at the plot created directly from R, you'll see it doesn't have those problems.

plot directly from R

I'm guessing this is some issue with my graphical device or the graphics device that knitr is using.

Is there a way to force the plots that eventually end up in the html file to keep the original plot appearance, ie to stay darker and have larger text?

Answer

As suggested by @Ramnath:

If you want to retain the same figure size but have a higher pixel size use:

fig.width = 9, fig.height = 5, dpi = 144

The default dpi is 72, this would give you a plot of the same size but with bigger pixels and text.