# Week51 - functionplotR

*December 30, 2015*

## This Week’s Widget - functionplotR

Mauricio Poppe has built a really amazing 2d `d3-js`

-based function plotter function-plot. I think it has all sorts of helpful uses in `R`

, so functionplotR will be this week’s `htmlwidget`

. Note, I released a couple days early. I hope nobody minds.

## Installation

This is not on CRAN, so to install we will need some help from `devtools::install_github`

.

`devtools::install_github("timelyportfolio/functionplotR")`

## Examples

I was able to replicate nearly all of the fantastic examples from the `function-plot`

JavaScript library. For the sake of brevity, I’ll only include a couple here. Go here or `?functionplot`

to see all of them.

### One Simple Equation

```
# devtools::install_github("timelyportfolio/functionplotR")
library(functionplotR)
functionplot("x + 2")
```

### Multiple Simple Functions

There a couple ways to supply functions to `functionplot`

. Below is the easiest but least flexible.

```
# devtools::install_github("timelyportfolio/functionplotR")
library(functionplotR)
functionplot(c("x + 2","x"))
```

### With Some Options

`function-plot`

gives us lots of `options`

. Let’s use some of them to configure our plot from above.

```
# devtools::install_github("timelyportfolio/functionplotR")
library(functionplotR)
functionplot(
# use the more flexible but a little more confusing
# way to provide functions
fn = list(
list( fn = "x + 2", color = "black" ),
list( fn = "x", color = "gray" )
),
yDomain = c(-4, 4),
xDomain = c(-4, 4),
width = 420,
height = 400
)
```

### Function with Derivative

One of my favorite features of `function-plot`

is the ability to plot interactive derivatives. It does require you to know the derivative though. With a quick Google, I think I now remember the derivative of `cos(x)`

. It is fun to put in something other than the derivative. Try `x`

as an example.

```
# devtools::install_github("timelyportfolio/functionplotR")
library(functionplotR)
functionplot(
fn = list(
list(
fn = "cos(x)",
derivative = list(
fn = "-sin(x)",
updateOnMouseMove = TRUE
)
)
)
)
```

## Thanks

Thanks Mauricio Poppe for the really special `function-plot`

plotting library.

As always, thanks to

- Ramnath Vaidyanathan and RStudio for
`htmlwidgets`

- all the contributors to
`R`

and`JavaScript`