brabont
brabont

Reputation: 23

dfSummary() graphs are not printed in the HTML file

When using dfSummary() from the "summarytools" package in Rmarkdown -file, I get Graph -part of the summary printed as plain ASCII despite the st_options(plain.ascii = FALSE). The correct graphs are printed in the /tmp -folder, but are not displayed in the html-file.

{r Summary, results='asis', echo=FALSE}
st_options(bootstrap.css = FALSE,
           plain.ascii = FALSE,
           style = "rmarkdown",
           dfSummary.silent = TRUE)
st_css()

dfSummary(df_data, tmp.img.dir = "/tmp", valid.col = FALSE, graph.magnif = 0.75)

Summary from the code above gets printed like this:

Print

How can I get the proper graphs (which are in the tmp-folder nice and shiny) included in the HTML file?

Upvotes: 1

Views: 957

Answers (2)

Dominic Comtois
Dominic Comtois

Reputation: 10401

Just add style="grid":

dfSummary(df_data, style = "grid", tmp.img.dir = "/tmp",
          valid.col = FALSE,  graph.magnif = 0.75)

The documentation is not clear enough on this point, it'll be fixed in the next version.

Upvotes: 0

Radovan Miletić
Radovan Miletić

Reputation: 2821

How can I get the proper graphs (which are in the tmp-folder nice and shiny) included in the html file?

According to the Dominic's vignette - "Recommendations for Using summarytools With Rmarkdown":

For dfSummary(), grid is recommended.

So, you may try following, using print() function:

```{r Summary, results = "asis", cache = FALSE}
base::print(summarytools::dfSummary(df_data,
                                    valid.col = FALSE,       # drop Valid column if redundant
                                    style = "grid",          # set style to “grid”
                                    plain.ascii = FALSE,
                                    graph.magnif = 0.75,     # zoom factor (max = 1) for bar plots and histograms
                                    tmp.img.dir = "./tmp"),
            dfSummary.silent  = TRUE,                        # Suppresses messages about temporary files
            bootstrap.css = FALSE)
```

Or, if you prefer to declare st_options() first:

```{r Summary2, results = 'asis', echo = FALSE}
st_options(bootstrap.css = FALSE, 
           dfSummary.silent = TRUE)
st_css()

dfSummary(df_data, 
          valid.col = FALSE,  
          style = "grid", 
          plain.ascii = FALSE, 
          graph.magnif = 0.75, 
          tmp.img.dir = "./tmp")
```

Let us know if this is helpful.

Upvotes: 1

Related Questions