df2json <- function(df){ y = do.call(slidify:::zip_vectors, as.list(df)) rjson::toJSON(y) } require(countrycode) guns = read.delim('http://mark.reid.name/bits/guns/data/guns.csv') deaths = read.delim('http://mark.reid.name/bits/guns/data/deaths.csv') dat = merge(guns, deaths) dat = transform(dat, continent = countrycode(Country, 'country.name', 'continent')) cat(df2json(dat), file = 'assets/data/gundeaths.json')
*** =pnotes
d3.json "data/gundeaths.json", (data) -> data2 = d3.nest() .key( (d) -> d.continent ) .entries(data) nv.addGraph -> chart = nv.models.scatterChart() .x( (d) -> d.Guns ) .y( (d) -> d.Homicides ) .color(d3.scale.category10().range()) .showDistX(true) .showDistY(true) .showControls(true) .width(900) .height(500) .tooltipContent (key, x, y, e) -> e.point.Country chart.scatter.forceY([-5]) chart.xAxis.axisLabel("Guns") chart.yAxis.axisLabel("Deaths") d3.select("#chart3 svg") .datum(data2) .transition().duration(500) .call(chart) return chart
source('r2nvd3.R') datm = reshape2::melt(USPersonalExpenditure) drawChart('Var2', 'value', group = 'Var1', geom = 'multiBarChart', data = datm, id='chart5', file = 'app3.js') # data(economics, package = 'ggplot2') # drawChart('date', 'pop', geom = 'lineChart', data = economics, file = 'app1.js')
source('r2nvd3.R') data(tips, package = 'reshape2') tips2 = plyr::count(tips, c('day', 'sex')) drawChart('day', 'freq', group = 'sex', geom = 'multiBarChart', data = tips2, id = 'chart4', file = 'app2.js')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.