Google Motion Chart with R
The gvisMotionChart function reads a data.frame and creates text output referring to the Google Visualisation API, which can be included into a web page, or as a stand-alone page. The actual chart is rendered by the web browser in Flash. A motion chart is a dynamic chart to explore several indicators over time.
gvisMotionChart( data, idvar = "id", timevar = "time", xvar = "", yvar = "", colorvar = "", sizevar = "", date.format = "%Y/%m/%d", options = list(), chartid )
data |
a |
idvar |
column name of |
timevar |
column name of |
xvar |
column name of a numerical vector in |
yvar |
column name of a numerical vector in |
colorvar |
column name of data that identifies bubbles in the
same series. Use the same value to identify all bubbles that belong
to the same series; bubbles in the same series will be assigned the
same color. Series can be configured using the |
sizevar |
values in this column are mapped to actual pixel
values using the |
date.format |
if |
options |
list of configuration options for Google Motion Chart. The options are documented in detail by Google online: https://developers.google.com/chart/interactive/docs/gallery/motionchart#Configuration_Options The parameters can be set via a named list. The parameters have to map those of the Google documentation.
For more details see the Google API documentation and the R examples below. |
chartid |
character. If missing (default) a random chart id will be
generated based on chart type and |
gvisMotionChart returns list
of class
"gvis
" and "list
".
An object of class "gvis
" is a list containing at least the
following components:
type
Google visualisation type
chartid
character id of the chart object. Unique chart ids are required to place several charts on the same page.
html
a list with the building blocks for a page
header
a character string of a html page header:
<html>...<body>
,
chart
a named character vector of the chart's building blocks:
jsHeader
Opening <script>
tag and
reference to Google's JavaScript library.
jsData
JavaScript function defining the input
data
as a JSON object.
jsDrawChart
JavaScript function combing the data with the visualisation API and user options.
jsDisplayChart
JavaScript function calling the handler to display the chart.
jsFooter
End tag </script>
.
jsChart
Call of the jsDisplayChart
function.
divChart
<div>
container to embed the chart
into the page.
caption
character string of a standard caption, including data name and chart id.
footer
character string of a html page footer:
</body>...</html>
, including the used R and googleVis version
and link to Google's Terms of Use.
Because of Flash security settings the chart might not work correctly when accessed from a file location in the browser (e.g., file:///c:/webhost/myhost/myviz.html) rather than from a web server URL (e.g. https://www.myhost.com/myviz.html). See the googleVis package vignette and the Macromedia web site (https://www.macromedia.com/support/documentation/en/flashplayer/help/) for more details.
Please note that a timevar
with values less than 100 will
be shown as years 19xx.
Markus Gesmann markus.gesmann@gmail.com, Diego de Castillo decastillo@gmail.com
Google Chart Tools API: https://developers.google.com/chart/interactive/docs/gallery/motionchart
See also print.gvis
, plot.gvis
for printing and plotting methods.
## Please note that by default the googleVis plot command ## will open a browser window and requires Flash and Internet ## connection to display the visualisation. M1 <- gvisMotionChart(Fruits, idvar="Fruit", timevar="Year") plot(M1) ## Not run: ## Usage of date variable M2 <- gvisMotionChart(Fruits, idvar="Fruit", timevar="Date", date.format = "\ plot(M2) ## Display weekly data: M3 <- gvisMotionChart(Fruits, "Fruit", "Date", date.format="\ plot(M3) ## End(Not run) ## Options: no side panel on the right M4 <- gvisMotionChart(Fruits,"Fruit", "Year", options=list(showSidePanel=FALSE)) plot(M4) ## Options: trails un-ticked M5 <- gvisMotionChart(Fruits, "Fruit", "Year", options=list(state='{"showTrails":false};')) plot(M5) ## You can change some of displaying settings via the browser, ## e.g. the level of opacity of non-selected items, or the chart type. ## The state string from the 'Advanced' tab can be used to set those ## settings via R. Just copy and past the string from the browser into ## the argument state of the options list. ## Here is an example of a motion chart, with an initial line chart ## displayed. Ensure that you have a newline at the start and end of ## your settings string. myStateSettings <-' {"xZoomedDataMin":1199145600000,"colorOption":"2", "duration":{"timeUnit":"Y","multiplier":1},"yLambda":1, "yAxisOption":"4","sizeOption":"_UNISIZE", "iconKeySettings":[],"xLambda":1,"nonSelectedAlpha":0, "xZoomedDataMax":1262304000000,"iconType":"LINE", "dimensions":{"iconDimensions":["dim0"]}, "showTrails":false,"uniColorForNonSelected":false, "xAxisOption":"_TIME","orderedByX":false,"playDuration":15000, "xZoomedIn":false,"time":"2010","yZoomedDataMin":0, "yZoomedIn":false,"orderedByY":false,"yZoomedDataMax":100} ' M6a <- gvisMotionChart(Fruits, "Fruit", "Year", options=list(state=myStateSettings)) plot(M6a) ## Newline set explicitly myStateSettings <-'\n{"iconType":"LINE"}\n' M6b <- gvisMotionChart(Fruits, "Fruit", "Year", options=list(state=myStateSettings)) plot(M6b) ## Define which columns are used for the initial setup of the various ## dimensions M7 <- gvisMotionChart(Fruits, idvar="Fruit", timevar="Year", xvar="Profit", yvar="Expenses", colorvar="Location", sizevar="Sales") plot(M7) ## For more information see: ## https://developers.google.com/chart/interactive/docs/gallery/motionchart ## See also the demo(WorldBank). It demonstrates how you can access ## country level data from the World Bank to create Gapminder-like ## plots.
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.