Graph Function API
In the environment panel, with a right click on a vector, you can display a simple graph, a density graph (R only), an histogram or a pie chart (R only, if the data are not numeric). It calls a function graph()
. This function can be used independently, without any additionnal package. It uses the JavaScript API of plotly, but as an R list or a Python dictionary. There is no need to know JavaScript, at any level.
The easiest way to understand how it works is to browse a basic example. In order to display the following code from the plotly documentation, the code should be:
trace1 = list( #var trace1 = {
x = c('giraffes', 'orangutans', 'monkeys'), # x: ['giraffes', 'orangutans', 'monkeys'],
y = c(20, 14, 23), # y: [20, 14, 23],
name = 'SF Zoo', # name: 'SF Zoo',
type = 'bar' # type: 'bar'
) #};
trace2 = list( #var trace2 = {
x = c('giraffes', 'orangutans', 'monkeys'), # x: ['giraffes', 'orangutans', 'monkeys'],
y = c(12, 18, 29), # y: [12, 18, 29],
name = 'LA Zoo', # name: 'LA Zoo',
type = 'bar' # type: 'bar'
) #};
data = list(trace1, trace2) #var data = [trace1, trace2];
layout = list(barmod = 'group') #var layout = {barmode: 'group'};
mygraph <- list(data = data, layout = layout) #Plotly.newPlot('myDiv', data, layout);
graph(mygraph)
trace1 = { #var trace1 = {
'x' : ['giraffes', 'orangutans', 'monkeys'], # x: ['giraffes', 'orangutans', 'monkeys'],
'y' : [20, 14, 23], # y: [20, 14, 23],
'name' : 'SF Zoo', # name: 'SF Zoo',
'type' : 'bar' # type: 'bar'
} #};
trace2 = { #var trace2 = {
'x' : ['giraffes', 'orangutans', 'monkeys'], # x: ['giraffes', 'orangutans', 'monkeys'],
'y' : [12, 18, 29], # y: [12, 18, 29],
'name' : 'LA Zoo', # name: 'LA Zoo',
'type' : 'bar' # type: 'bar'
} #};
data = [trace1, trace2] #var data = [trace1, trace2];
layout = {'barmod' : 'group'} #var layout = {barmode: 'group'};
mygraph = {'data' : data, 'layout' : layout} #Plotly.newPlot('myDiv', data, layout);
graph(mygraph)
On the left there is the R / Python code, and on the right in comment the JavaScript code from the plotly example.
Explanation:
- In the JavaScript, trace1 and trace2 are lists with named elements x, y, name, type, where x and y and are vectors/lists. We create the same objects in R / Python, as R vectors/lists or Python numpy array/dictionaries/lists.
data
is an R / Python list with the previous ones.layout
is also an R list / Python dictionary with the named element barmod.- Finally, there is also an R list / Python dictionary to regroup data and layout, and they are explicitly named.
Note
There is no differentiation in the R version between {}
and []
from JavaScript: all are R lists. It can be replaced by a vector, if relevant (like the x and y component of trace1 and trace2).
This analogy works for every graphic from plotly, using the JavaScript version. You can find a lot of other plotly examples in JavaScript that you can easily use in the plotly documentation.
Note
Independently of the graph
function, the R package plotly still works as usual in RCode with its particular syntax.