Learn R Programming

googleVis (version 0.4.4)

gvisMotionChart: Google Motion Chart with R

Description

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.

Usage

gvisMotionChart(data, idvar = "id", timevar = "time",
                      xvar="", yvar="", colorvar="", sizevar="",
		      date.format = "%Y/%m/%d", 
		      options = list(), chartid)

Arguments

data
a data.frame. The data has to have at least four columns with subject name (idvar), time (timevar) and two columns of numeric values. Further columns, numeric and character/factor are optional. The combin
idvar
column name of data with the subject to be analysed.
timevar
column name of data which shows the time dimension. The information has to be either numeric, of class Date or a character which follows the pattern 'YYYYWww' (e.g. '2010W04' for week
xvar
column name of a numerical vector in data to be plotted on the x-axis.
yvar
column name of a numerical vector in data to be plotted on the y-axis.
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 ser
sizevar
values in this column are mapped to actual pixel values using the sizeAxis option.
date.format
if timevar is of class Date then this argument specifies how the dates are reformatted to be used by JavaScript.
options
list of configuration options for Google Motion Chart. [object Object],[object Object] Further possible components are, taken from https://developers.google.com/chart/interactive/docs/gallery/motionchart: [object Object],[objec
chartid
character. If missing (default) a random chart id will be generated based on chart type and tempfile

Value

  • gvisMotionChart returns list of class "gvis" and "list". An object of class "gvis" is a list containing at least the following components:
  • typeGoogle visualisation type, here 'MotionChart'
  • chartidcharacter id of the chart object. Unique chart ids are required to place several charts on the same page.
  • htmla list with the building blocks for a page [object Object],[object Object],[object Object],[object Object]

Warnings

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. http://www.myhost.com/myviz.html). See the googleVis package vignette and the Macromedia web site (http://www.macromedia.com/support/documentation/en/flashplayer/help/) for more details.

References

Google Motion Chart API: https://developers.google.com/chart/interactive/docs/gallery/motionchart

Follow the link for Google's data policy.

In 2006 Hans Rosling gave an inspiring talk at TED http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html about social and economic developments in the world over the last 50 years, which challenged the views and perceptions of many listeners. Rosling had used extensive data analysis to reach his conclusions. To visualise his talk, he and his team at Gapminder http://www.gapminder.org had developed animated bubble charts, aka motion charts.

In March 2007 Google acquired Trendalyzer from the Gapminder Foundation and the Gapminder team of developers joined Google in California in April 2007. Yihui Xie, the maintainer of the animation-package showed in an early blog entry the usage of the Google Motion Chart API with R:

http://yihui.name/en/2008/11/brownian-motion-using-google-visualization-api-and-r/ Further examples of displaying data with motion charts are available via the Google Public Data Explorer: http://www.google.com/publicdata/home.

Stephen Thompson at Lloyd's developed an Excel version that mimics much of the functionality of the Google motion charts: http://www.lloyds.com/The-Market/Tools-and-Resources/Resources/Statistics-Relating-to-Lloyds/Visualisation

See Also

See also print.gvis, plot.gvis for printing and plotting methods, and also the animation-package and its function Rosling.bubbles.

Examples

Run this code
## Please note that by default the googleVis plot command
## will open a browser window and requires Flash and Internet
## connection to display the visualisation.

Fruits	
## timevar Year
M1 <- gvisMotionChart(Fruits, idvar="Fruit", timevar="Year")
str(M1)
## print.gvis, will concatenate the list into a one long string
M1

plot(M1)

## Combine with another chart, e.g. table
tbl <- gvisTable(Fruits, options=list(height=220))
Mtbl <- gvisMerge(M1, tbl)
plot(Mtbl)

## Usage of date variable
M2 <- gvisMotionChart(Fruits, idvar="Fruit", timevar="Date",
                               date.format = "%Y%m%d") 
plot(M2)

## Display weekly data:
M3 <- gvisMotionChart(Fruits, "Fruit", "Date", date.format="%YW%W")

plot(M3)
## 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><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.</n>
<keyword>iplot</keyword>

Run the code above in your browser using DataLab