Using Dygraphs

The dygraphs package is an R interface to the dygraphs JavaScript charting library. It provides rich facilities for charting time-series data in R.

More information on dygraphs can be found at https://rstudio.github.io/dygraphs/

Installing dygraphs

The dygraphs package is not installed by default in DSS. The recommended method for doing so is to use a code environment. See how to install R packages

You need to install the dygraphs package. If you are using a Conda environment, you can also choose to install in the Conda section the r-dygraphs package.

Displaying charts in a Jupyter notebook

dygraphs charts will not work properly if you only use the dygraph() method in a Jupyter R notebook.

To display dygraphs charts in a Jupyter notebook, use:

library(dataiku)
library(dygraphs)

the_graph <- dygraph(mydata)

dkuDisplayDygraph(the_graph)

For example, to display the sample lungDeaths dataset

library(dygraphs)
library(dataiku)
lungDeaths <- cbind(mdeaths, fdeaths)
dkuDisplayDygraph(dygraph(lungDeaths))

Converting a date column to a time-series

Dygraphs works primarily with time series. If you have a DSS dataset with a “date” column, you’ll need to convert your dataframe to a time series or XTS object.

For example, the following will create a time-series of revenue by order_ts

library(xts)
df <- dkuReadDataset("orders")

timeseries <- xts(df$revenue, order.by=as.Date(df$order_ts))

# You can then plot timeseries
dkuDisplayDygraph(dygraph(timeseries) %>% dyRangeSelector())

Displaying charts on a dashboard

dygraphs charts generated using R code can be shared on a DSS dashboard using the “static insights” system.

Each dygraphs chart can become a single insight in the dashboard. Each chart will retain full interactive capabilities (if you have defined them in your dygraph)

To do so, create static insights

# dg is a dygraphs object, created using the dygraph() function

dkuSaveHTMLInsight("my-dygraphs-plot", dg)

From the Dashboard, you can then add a new “Static” insight, select the my-dygraphs-plot insight

Refreshing charts on a dashboard

You can refresh the charts automatically on a dashboard by using a scenario to re-run the above piece of code.

This call to dkuSaveHTMLInsight code can be:

  • In a DSS recipe (use a regular “Build” scenario step)

  • In a Jupyter notebook (use a “Export notebook” scenario step)

Using in Shiny

Dygraphs can be used directly in Shiny. See https://rstudio.github.io/dygraphs/shiny.html for more information.

See https://github.com/dataiku/dss-code-samples/tree/master/visualization/shiny/shiny-and-dygraphs for a complete code sample