NVD3
# load rCharts package
require(rCharts); library(datasets); library(knitr)
## Loading required package: rCharts
# create dataframe with HairEyeColor data
haireye = as.data.frame(HairEyeColor)
# create a nPlot object
n1 <- nPlot(Freq ~ Hair, group = 'Eye', type = 'multiBarChart',
data = subset(haireye, Sex == 'Male'))
# save the nPlot object to a html page
n1$print('chart2', include_assets = TRUE)
## <link rel='stylesheet' href=C:/Users/Brian/Documents/R/win-library/3.1/rCharts/libraries/nvd3/css/nv.d3.css>
## <link rel='stylesheet' href=C:/Users/Brian/Documents/R/win-library/3.1/rCharts/libraries/nvd3/css/rNVD3.css>
## <script type='text/javascript' src=C:/Users/Brian/Documents/R/win-library/3.1/rCharts/libraries/nvd3/js/jquery-1.8.2.min.js></script>
## <script type='text/javascript' src=C:/Users/Brian/Documents/R/win-library/3.1/rCharts/libraries/nvd3/js/d3.v3.min.js></script>
## <script type='text/javascript' src=C:/Users/Brian/Documents/R/win-library/3.1/rCharts/libraries/nvd3/js/nv.d3.min-new.js></script>
## <script type='text/javascript' src=C:/Users/Brian/Documents/R/win-library/3.1/rCharts/libraries/nvd3/js/fisheye.js></script>
## <style>
## .rChart {
## display: block;
## margin-left: auto;
## margin-right: auto;
## width: 800px;
## height: 400px;
## }
## </style>
## <div id = 'chart2' class = 'rChart nvd3'></div>
## <script type='text/javascript'>
## $(document).ready(function(){
## drawchart2()
## });
## function drawchart2(){
## var opts = {
## "dom": "chart2",
## "width": 800,
## "height": 400,
## "x": "Hair",
## "y": "Freq",
## "group": "Eye",
## "type": "multiBarChart",
## "id": "chart2"
## },
## data = [
## {
## "Hair": "Black",
## "Eye": "Brown",
## "Sex": "Male",
## "Freq": 32
## },
## {
## "Hair": "Brown",
## "Eye": "Brown",
## "Sex": "Male",
## "Freq": 53
## },
## {
## "Hair": "Red",
## "Eye": "Brown",
## "Sex": "Male",
## "Freq": 10
## },
## {
## "Hair": "Blond",
## "Eye": "Brown",
## "Sex": "Male",
## "Freq": 3
## },
## {
## "Hair": "Black",
## "Eye": "Blue",
## "Sex": "Male",
## "Freq": 11
## },
## {
## "Hair": "Brown",
## "Eye": "Blue",
## "Sex": "Male",
## "Freq": 50
## },
## {
## "Hair": "Red",
## "Eye": "Blue",
## "Sex": "Male",
## "Freq": 10
## },
## {
## "Hair": "Blond",
## "Eye": "Blue",
## "Sex": "Male",
## "Freq": 30
## },
## {
## "Hair": "Black",
## "Eye": "Hazel",
## "Sex": "Male",
## "Freq": 10
## },
## {
## "Hair": "Brown",
## "Eye": "Hazel",
## "Sex": "Male",
## "Freq": 25
## },
## {
## "Hair": "Red",
## "Eye": "Hazel",
## "Sex": "Male",
## "Freq": 7
## },
## {
## "Hair": "Blond",
## "Eye": "Hazel",
## "Sex": "Male",
## "Freq": 5
## },
## {
## "Hair": "Black",
## "Eye": "Green",
## "Sex": "Male",
## "Freq": 3
## },
## {
## "Hair": "Brown",
## "Eye": "Green",
## "Sex": "Male",
## "Freq": 15
## },
## {
## "Hair": "Red",
## "Eye": "Green",
## "Sex": "Male",
## "Freq": 7
## },
## {
## "Hair": "Blond",
## "Eye": "Green",
## "Sex": "Male",
## "Freq": 8
## }
## ]
##
## if(!(opts.type==="pieChart" || opts.type==="sparklinePlus" || opts.type==="bulletChart")) {
## var data = d3.nest()
## .key(function(d){
## //return opts.group === undefined ? 'main' : d[opts.group]
## //instead of main would think a better default is opts.x
## return opts.group === undefined ? opts.y : d[opts.group];
## })
## .entries(data);
## }
##
## if (opts.disabled != undefined){
## data.map(function(d, i){
## d.disabled = opts.disabled[i]
## })
## }
##
## nv.addGraph(function() {
## var chart = nv.models[opts.type]()
## .width(opts.width)
## .height(opts.height)
##
## if (opts.type != "bulletChart"){
## chart
## .x(function(d) { return d[opts.x] })
## .y(function(d) { return d[opts.y] })
## }
##
##
##
##
##
##
##
##
##
##
## d3.select("#" + opts.id)
## .append('svg')
## .datum(data)
## .transition().duration(500)
## .call(chart);
##
## nv.utils.windowResize(chart.update);
## return chart;
## });
## };
## </script>