Skip to content

Instantly share code, notes, and snippets.

@timelyportfolio
Created September 10, 2013 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timelyportfolio/6510182 to your computer and use it in GitHub Desktop.
Save timelyportfolio/6510182 to your computer and use it in GitHub Desktop.
<!doctype HTML>
<meta charset = 'utf-8'>
<html>
<head>
<script src='http://d3js.org/d3.v3.min.js' type='text/javascript'></script>
<script src='http://dimplejs.org/dist/dimple.v1.min.js' type='text/javascript'></script>
<style>
.rChart {
display: block;
margin-left: auto;
margin-right: auto;
width: 800px;
height: 600px;
}
</style>
</head>
<body>
<div id='chart11d02e073f96' class='rChart dimple'></div>
<script type="text/javascript">
(function(){
var opts = {
"dom": "chart11d02e073f96",
"width": 800,
"height": 600,
"x": "symbol",
"y": "median",
"groups": "symbol",
"type": "bar",
"facet": {
"x": "strategy",
"y": "date"
},
"id": "chart11d02e073f96"
},
data = [{"strategy":"EW","date":"2008","symbol":"EEM","median":0.0972769179025313},{"strategy":"EW","date":"2008","symbol":"EFA","median":0.0991183375648106},{"strategy":"EW","date":"2008","symbol":"GLD","median":0.100891770571318},{"strategy":"EW","date":"2008","symbol":"IWM","median":0.0998013229053981},{"strategy":"EW","date":"2008","symbol":"IYR","median":0.1},{"strategy":"EW","date":"2008","symbol":"QQQ","median":0.1},{"strategy":"EW","date":"2008","symbol":"SPY","median":0.0995358726679266},{"strategy":"EW","date":"2008","symbol":"TLT","median":0.10208415184966},{"strategy":"EW","date":"2008","symbol":"USO","median":0.0977746113260552},{"strategy":"EW","date":"2008","symbol":"UUP","median":0.10135742857701},{"strategy":"EW","date":"2009","symbol":"EEM","median":0.102259352925037},{"strategy":"EW","date":"2009","symbol":"EFA","median":0.100376599683708},{"strategy":"EW","date":"2009","symbol":"GLD","median":0.0999265467409469},{"strategy":"EW","date":"2009","symbol":"IWM","median":0.100484420070296},{"strategy":"EW","date":"2009","symbol":"IYR","median":0.1},{"strategy":"EW","date":"2009","symbol":"QQQ","median":0.101593684442157},{"strategy":"EW","date":"2009","symbol":"SPY","median":0.100427622396112},{"strategy":"EW","date":"2009","symbol":"TLT","median":0.096499797013129},{"strategy":"EW","date":"2009","symbol":"USO","median":0.099324584393505},{"strategy":"EW","date":"2009","symbol":"UUP","median":0.0984020815904001},{"strategy":"EW","date":"2010","symbol":"EEM","median":0.100995154744413},{"strategy":"EW","date":"2010","symbol":"EFA","median":0.101032779408737},{"strategy":"EW","date":"2010","symbol":"GLD","median":0.1},{"strategy":"EW","date":"2010","symbol":"IWM","median":0.101248718491265},{"strategy":"EW","date":"2010","symbol":"IYR","median":0.10016406969757},{"strategy":"EW","date":"2010","symbol":"QQQ","median":0.100528188223909},{"strategy":"EW","date":"2010","symbol":"SPY","median":0.10036815975573},{"strategy":"EW","date":"2010","symbol":"TLT","median":0.0975077040626023},{"strategy":"EW","date":"2010","symbol":"USO","median":0.0998774757333163},{"strategy":"EW","date":"2010","symbol":"UUP","median":0.0975965025315092},{"strategy":"EW","date":"2011","symbol":"EEM","median":0.0990300730472657},{"strategy":"EW","date":"2011","symbol":"EFA","median":0.0989901376126824},{"strategy":"EW","date":"2011","symbol":"GLD","median":0.101038579801147},{"strategy":"EW","date":"2011","symbol":"IWM","median":0.0993949672940637},{"strategy":"EW","date":"2011","symbol":"IYR","median":0.0994330335442154},{"strategy":"EW","date":"2011","symbol":"QQQ","median":0.1},{"strategy":"EW","date":"2011","symbol":"SPY","median":0.0999242784278795},{"strategy":"EW","date":"2011","symbol":"TLT","median":0.101247196221897},{"strategy":"EW","date":"2011","symbol":"USO","median":0.0999799415095781},{"strategy":"EW","date":"2011","symbol":"UUP","median":0.100830421740086},{"strategy":"EW","date":"2012","symbol":"EEM","median":0.100474671782107},{"strategy":"EW","date":"2012","symbol":"EFA","median":0.100543749484654},{"strategy":"EW","date":"2012","symbol":"GLD","median":0.0996951083027431},{"strategy":"EW","date":"2012","symbol":"IWM","median":0.100182622502106},{"strategy":"EW","date":"2012","symbol":"IYR","median":0.100236633629506},{"strategy":"EW","date":"2012","symbol":"QQQ","median":0.100026518274229},{"strategy":"EW","date":"2012","symbol":"SPY","median":0.100237662185474},{"strategy":"EW","date":"2012","symbol":"TLT","median":0.0990022528005612},{"strategy":"EW","date":"2012","symbol":"USO","median":0.0996871353554679},{"strategy":"EW","date":"2012","symbol":"UUP","median":0.0997273371422422},{"strategy":"EW","date":"2013","symbol":"EEM","median":0.0989678173328865},{"strategy":"EW","date":"2013","symbol":"EFA","median":0.100432498567763},{"strategy":"EW","date":"2013","symbol":"GLD","median":0.098938147073398},{"strategy":"EW","date":"2013","symbol":"IWM","median":0.101158820554598},{"strategy":"EW","date":"2013","symbol":"IYR","median":0.1},{"strategy":"EW","date":"2013","symbol":"QQQ","median":0.100919994119878},{"strategy":"EW","date":"2013","symbol":"SPY","median":0.100983525358987},{"strategy":"EW","date":"2013","symbol":"TLT","median":0.0981577806117501},{"strategy":"EW","date":"2013","symbol":"USO","median":0.100762775352994},{"strategy":"EW","date":"2013","symbol":"UUP","median":0.0998392197881262},{"strategy":"RP","date":"2008","symbol":"EEM","median":0.0527365848025824},{"strategy":"RP","date":"2008","symbol":"EFA","median":0.0893651483462844},{"strategy":"RP","date":"2008","symbol":"GLD","median":0.0960876987981793},{"strategy":"RP","date":"2008","symbol":"IWM","median":0.079019850600777},{"strategy":"RP","date":"2008","symbol":"IYR","median":0.0590413094629233},{"strategy":"RP","date":"2008","symbol":"QQQ","median":0.0842165847303225},{"strategy":"RP","date":"2008","symbol":"SPY","median":0.100786194661878},{"strategy":"RP","date":"2008","symbol":"TLT","median":0.161680639123452},{"strategy":"RP","date":"2008","symbol":"USO","median":0.0618485044192695},{"strategy":"RP","date":"2008","symbol":"UUP","median":0.219615831503953},{"strategy":"RP","date":"2009","symbol":"EEM","median":0.0508562336972784},{"strategy":"RP","date":"2009","symbol":"EFA","median":0.0708732074888974},{"strategy":"RP","date":"2009","symbol":"GLD","median":0.11194828960974},{"strategy":"RP","date":"2009","symbol":"IWM","median":0.0719258601103335},{"strategy":"RP","date":"2009","symbol":"IYR","median":0.042290782198616},{"strategy":"RP","date":"2009","symbol":"QQQ","median":0.0876387575564402},{"strategy":"RP","date":"2009","symbol":"SPY","median":0.0813083395747019},{"strategy":"RP","date":"2009","symbol":"TLT","median":0.172302512890304},{"strategy":"RP","date":"2009","symbol":"USO","median":0.0591885666788612},{"strategy":"RP","date":"2009","symbol":"UUP","median":0.248330621225122},{"strategy":"RP","date":"2010","symbol":"EEM","median":0.0692464997402181},{"strategy":"RP","date":"2010","symbol":"EFA","median":0.0808410333351686},{"strategy":"RP","date":"2010","symbol":"GLD","median":0.111517065187452},{"strategy":"RP","date":"2010","symbol":"IWM","median":0.0776343604803061},{"strategy":"RP","date":"2010","symbol":"IYR","median":0.0597187132874143},{"strategy":"RP","date":"2010","symbol":"QQQ","median":0.101845224343036},{"strategy":"RP","date":"2010","symbol":"SPY","median":0.105740073504394},{"strategy":"RP","date":"2010","symbol":"TLT","median":0.128392425820815},{"strategy":"RP","date":"2010","symbol":"USO","median":0.0591926304385898},{"strategy":"RP","date":"2010","symbol":"UUP","median":0.20374879593184},{"strategy":"RP","date":"2011","symbol":"EEM","median":0.07411179548184},{"strategy":"RP","date":"2011","symbol":"EFA","median":0.0770383462788539},{"strategy":"RP","date":"2011","symbol":"GLD","median":0.114081057669307},{"strategy":"RP","date":"2011","symbol":"IWM","median":0.0743523193623462},{"strategy":"RP","date":"2011","symbol":"IYR","median":0.0780375615873737},{"strategy":"RP","date":"2011","symbol":"QQQ","median":0.097029365033056},{"strategy":"RP","date":"2011","symbol":"SPY","median":0.105576771975805},{"strategy":"RP","date":"2011","symbol":"TLT","median":0.112154417120845},{"strategy":"RP","date":"2011","symbol":"USO","median":0.0637816824800711},{"strategy":"RP","date":"2011","symbol":"UUP","median":0.201514740940042},{"strategy":"RP","date":"2012","symbol":"EEM","median":0.067151040273901},{"strategy":"RP","date":"2012","symbol":"EFA","median":0.0740794727812342},{"strategy":"RP","date":"2012","symbol":"GLD","median":0.100129369330301},{"strategy":"RP","date":"2012","symbol":"IWM","median":0.070015533445145},{"strategy":"RP","date":"2012","symbol":"IYR","median":0.0795668784555173},{"strategy":"RP","date":"2012","symbol":"QQQ","median":0.0942000522340306},{"strategy":"RP","date":"2012","symbol":"SPY","median":0.0967509163185592},{"strategy":"RP","date":"2012","symbol":"TLT","median":0.104438014949586},{"strategy":"RP","date":"2012","symbol":"USO","median":0.0682610416114796},{"strategy":"RP","date":"2012","symbol":"UUP","median":0.238740492732132},{"strategy":"RP","date":"2013","symbol":"EEM","median":0.0748476634440157},{"strategy":"RP","date":"2013","symbol":"EFA","median":0.0820112808882513},{"strategy":"RP","date":"2013","symbol":"GLD","median":0.0794728939430861},{"strategy":"RP","date":"2013","symbol":"IWM","median":0.086041713666709},{"strategy":"RP","date":"2013","symbol":"IYR","median":0.111132258508418},{"strategy":"RP","date":"2013","symbol":"QQQ","median":0.0902105565635881},{"strategy":"RP","date":"2013","symbol":"SPY","median":0.107695225270307},{"strategy":"RP","date":"2013","symbol":"TLT","median":0.0966346965530048},{"strategy":"RP","date":"2013","symbol":"USO","median":0.0553096951956983},{"strategy":"RP","date":"2013","symbol":"UUP","median":0.20940657232703},{"strategy":"C.EW","date":"2008","symbol":"EEM","median":0.0401331130006295},{"strategy":"C.EW","date":"2008","symbol":"EFA","median":0.0410825590205047},{"strategy":"C.EW","date":"2008","symbol":"GLD","median":0.125},{"strategy":"C.EW","date":"2008","symbol":"IWM","median":0.0413634893718761},{"strategy":"C.EW","date":"2008","symbol":"IYR","median":0.041659803781599},{"strategy":"C.EW","date":"2008","symbol":"QQQ","median":0.0416666666666667},{"strategy":"C.EW","date":"2008","symbol":"SPY","median":0.0411901363091925},{"strategy":"C.EW","date":"2008","symbol":"TLT","median":0.253203861218916},{"strategy":"C.EW","date":"2008","symbol":"USO","median":0.121247588819334},{"strategy":"C.EW","date":"2008","symbol":"UUP","median":0.251498543243283},{"strategy":"C.EW","date":"2009","symbol":"EEM","median":0.0377335202332059},{"strategy":"C.EW","date":"2009","symbol":"EFA","median":0.0367749016765224},{"strategy":"C.EW","date":"2009","symbol":"GLD","median":0.24690358214781},{"strategy":"C.EW","date":"2009","symbol":"IWM","median":0.0370628614359441},{"strategy":"C.EW","date":"2009","symbol":"IYR","median":0.037256408011199},{"strategy":"C.EW","date":"2009","symbol":"QQQ","median":0.0369596847479354},{"strategy":"C.EW","date":"2009","symbol":"SPY","median":0.0367664655902278},{"strategy":"C.EW","date":"2009","symbol":"TLT","median":0.244350087940035},{"strategy":"C.EW","date":"2009","symbol":"USO","median":0.0371277386327393},{"strategy":"C.EW","date":"2009","symbol":"UUP","median":0.248673585692028},{"strategy":"C.EW","date":"2010","symbol":"EEM","median":0.0377390522298042},{"strategy":"C.EW","date":"2010","symbol":"EFA","median":0.0382901742221428},{"strategy":"C.EW","date":"2010","symbol":"GLD","median":0.248640685460571},{"strategy":"C.EW","date":"2010","symbol":"IWM","median":0.0385996984320563},{"strategy":"C.EW","date":"2010","symbol":"IYR","median":0.0377578355556659},{"strategy":"C.EW","date":"2010","symbol":"QQQ","median":0.0380705524373005},{"strategy":"C.EW","date":"2010","symbol":"SPY","median":0.0379544715641154},{"strategy":"C.EW","date":"2010","symbol":"TLT","median":0.246093722267028},{"strategy":"C.EW","date":"2010","symbol":"USO","median":0.0378401360879078},{"strategy":"C.EW","date":"2010","symbol":"UUP","median":0.247557267548019},{"strategy":"C.EW","date":"2011","symbol":"EEM","median":0.0360039427761251},{"strategy":"C.EW","date":"2011","symbol":"EFA","median":0.0359782910813783},{"strategy":"C.EW","date":"2011","symbol":"GLD","median":0.253384162440604},{"strategy":"C.EW","date":"2011","symbol":"IWM","median":0.0359836498586558},{"strategy":"C.EW","date":"2011","symbol":"IYR","median":0.0357849250630471},{"strategy":"C.EW","date":"2011","symbol":"QQQ","median":0.0360088569952919},{"strategy":"C.EW","date":"2011","symbol":"SPY","median":0.0357945431883956},{"strategy":"C.EW","date":"2011","symbol":"TLT","median":0.248413900343757},{"strategy":"C.EW","date":"2011","symbol":"USO","median":0.0358983709851009},{"strategy":"C.EW","date":"2011","symbol":"UUP","median":0.24877121887304},{"strategy":"C.EW","date":"2012","symbol":"EEM","median":0.0476451939775697},{"strategy":"C.EW","date":"2012","symbol":"EFA","median":0.0477994687911765},{"strategy":"C.EW","date":"2012","symbol":"GLD","median":0.332678639313274},{"strategy":"C.EW","date":"2012","symbol":"IWM","median":0.0476190476190476},{"strategy":"C.EW","date":"2012","symbol":"IYR","median":0.0476225169766299},{"strategy":"C.EW","date":"2012","symbol":"QQQ","median":0.0476190476190476},{"strategy":"C.EW","date":"2012","symbol":"SPY","median":0.047705816325834},{"strategy":"C.EW","date":"2012","symbol":"TLT","median":0.166264024114372},{"strategy":"C.EW","date":"2012","symbol":"USO","median":0.047519991772768},{"strategy":"C.EW","date":"2012","symbol":"UUP","median":0.166715101786156},{"strategy":"C.EW","date":"2013","symbol":"EEM","median":0.0356601728623843},{"strategy":"C.EW","date":"2013","symbol":"EFA","median":0.0362087295319129},{"strategy":"C.EW","date":"2013","symbol":"GLD","median":0.249580366092668},{"strategy":"C.EW","date":"2013","symbol":"IWM","median":0.0364216537230998},{"strategy":"C.EW","date":"2013","symbol":"IYR","median":0.0359944589179667},{"strategy":"C.EW","date":"2013","symbol":"QQQ","median":0.0363390679479556},{"strategy":"C.EW","date":"2013","symbol":"SPY","median":0.0363886131789036},{"strategy":"C.EW","date":"2013","symbol":"TLT","median":0.246608300053554},{"strategy":"C.EW","date":"2013","symbol":"USO","median":0.0362936428523281},{"strategy":"C.EW","date":"2013","symbol":"UUP","median":0.250359022838407},{"strategy":"C.RP","date":"2008","symbol":"EEM","median":0.0174808642154638},{"strategy":"C.RP","date":"2008","symbol":"EFA","median":0.0298127110415358},{"strategy":"C.RP","date":"2008","symbol":"GLD","median":0.0981974732965371},{"strategy":"C.RP","date":"2008","symbol":"IWM","median":0.0262634146855304},{"strategy":"C.RP","date":"2008","symbol":"IYR","median":0.0195718653588026},{"strategy":"C.RP","date":"2008","symbol":"QQQ","median":0.0278615538262695},{"strategy":"C.RP","date":"2008","symbol":"SPY","median":0.0334271200518572},{"strategy":"C.RP","date":"2008","symbol":"TLT","median":0.295319804700387},{"strategy":"C.RP","date":"2008","symbol":"USO","median":0.0624679169443451},{"strategy":"C.RP","date":"2008","symbol":"UUP","median":0.39328766466902},{"strategy":"C.RP","date":"2009","symbol":"EEM","median":0.0136189452353769},{"strategy":"C.RP","date":"2009","symbol":"EFA","median":0.0190969492841487},{"strategy":"C.RP","date":"2009","symbol":"GLD","median":0.183119863397186},{"strategy":"C.RP","date":"2009","symbol":"IWM","median":0.0192936872735304},{"strategy":"C.RP","date":"2009","symbol":"IYR","median":0.0115207294687494},{"strategy":"C.RP","date":"2009","symbol":"QQQ","median":0.0237810733495913},{"strategy":"C.RP","date":"2009","symbol":"SPY","median":0.0218068459250448},{"strategy":"C.RP","date":"2009","symbol":"TLT","median":0.284372028589455},{"strategy":"C.RP","date":"2009","symbol":"USO","median":0.0161202905324287},{"strategy":"C.RP","date":"2009","symbol":"UUP","median":0.410322012606497},{"strategy":"C.RP","date":"2010","symbol":"EEM","median":0.0227733325942156},{"strategy":"C.RP","date":"2010","symbol":"EFA","median":0.0248714667095147},{"strategy":"C.RP","date":"2010","symbol":"GLD","median":0.205354732515317},{"strategy":"C.RP","date":"2010","symbol":"IWM","median":0.0242123800825765},{"strategy":"C.RP","date":"2010","symbol":"IYR","median":0.0216925383837301},{"strategy":"C.RP","date":"2010","symbol":"QQQ","median":0.0311258688581249},{"strategy":"C.RP","date":"2010","symbol":"SPY","median":0.0328423105286394},{"strategy":"C.RP","date":"2010","symbol":"TLT","median":0.244105058691626},{"strategy":"C.RP","date":"2010","symbol":"USO","median":0.0209885961786726},{"strategy":"C.RP","date":"2010","symbol":"UUP","median":0.386550878307058},{"strategy":"C.RP","date":"2011","symbol":"EEM","median":0.024155061907099},{"strategy":"C.RP","date":"2011","symbol":"EFA","median":0.0247235582596227},{"strategy":"C.RP","date":"2011","symbol":"GLD","median":0.226562477839687},{"strategy":"C.RP","date":"2011","symbol":"IWM","median":0.0238817311814255},{"strategy":"C.RP","date":"2011","symbol":"IYR","median":0.0264878404070283},{"strategy":"C.RP","date":"2011","symbol":"QQQ","median":0.0311584174683695},{"strategy":"C.RP","date":"2011","symbol":"SPY","median":0.0346116618217524},{"strategy":"C.RP","date":"2011","symbol":"TLT","median":0.214543307018649},{"strategy":"C.RP","date":"2011","symbol":"USO","median":0.0198350320102255},{"strategy":"C.RP","date":"2011","symbol":"UUP","median":0.380141976127233},{"strategy":"C.RP","date":"2012","symbol":"EEM","median":0.0271346587466941},{"strategy":"C.RP","date":"2012","symbol":"EFA","median":0.0295673735586218},{"strategy":"C.RP","date":"2012","symbol":"GLD","median":0.262302009840171},{"strategy":"C.RP","date":"2012","symbol":"IWM","median":0.0280494376741688},{"strategy":"C.RP","date":"2012","symbol":"IYR","median":0.0319427394639126},{"strategy":"C.RP","date":"2012","symbol":"QQQ","median":0.0380577738095488},{"strategy":"C.RP","date":"2012","symbol":"SPY","median":0.0387387538287328},{"strategy":"C.RP","date":"2012","symbol":"TLT","median":0.156794780755333},{"strategy":"C.RP","date":"2012","symbol":"USO","median":0.0278648940362846},{"strategy":"C.RP","date":"2012","symbol":"UUP","median":0.35593370425744},{"strategy":"C.RP","date":"2013","symbol":"EEM","median":0.0249783291120232},{"strategy":"C.RP","date":"2013","symbol":"EFA","median":0.0270433648757565},{"strategy":"C.RP","date":"2013","symbol":"GLD","median":0.161087850502104},{"strategy":"C.RP","date":"2013","symbol":"IWM","median":0.0288713209397784},{"strategy":"C.RP","date":"2013","symbol":"IYR","median":0.0365300980775755},{"strategy":"C.RP","date":"2013","symbol":"QQQ","median":0.0303046361656772},{"strategy":"C.RP","date":"2013","symbol":"SPY","median":0.0359514650529644},{"strategy":"C.RP","date":"2013","symbol":"TLT","median":0.199046272851329},{"strategy":"C.RP","date":"2013","symbol":"USO","median":0.0183817971395982},{"strategy":"C.RP","date":"2013","symbol":"UUP","median":0.424163275976772}],
xAxis = {
"type": "addCategoryAxis",
"showPercent": false,
"orderRule": "symbol"
},
yAxis = {
"type": "addMeasureAxis",
"showPercent": false,
"overrideMax": 0.4
},
zAxis = [],
colorAxis = [],
legend = [];
var svg = dimple.newSvg("#" + opts.id, opts.width, opts.height);
//data = dimple.filterData(data, "Owner", ["Aperture", "Black Mesa"])
var myChart = new dimple.chart(svg, data);
var subCharts = [];
if (opts.bounds) {
myChart.setBounds(opts.bounds.x, opts.bounds.y, opts.bounds.width, opts.bounds.height);//myChart.setBounds(80, 30, 480, 330);
}
//if facet not provided for x or y make Dummy variable
opts.facet.x = opts.facet.x ? opts.facet.x : "Dummy"
opts.facet.y = opts.facet.y ? opts.facet.y : "Dummy"
if(opts.facet.x === "Dummy" || opts.facet.y === "Dummy") {
data.forEach(function(d){
d.Dummy = 1;
})
}
var x = myChart.addCategoryAxis("x", opts.facet.x);
var y = myChart.addCategoryAxis("y", opts.facet.y);
// Add the bar series to create the matrix shapes
var s = myChart.addSeries("Hide", dimple.plot.bar);
// Hide this series
myChart.assignColor("Hide", "#fff", "#fff", 0);
// The bar gap here will define the gaps between the charts
s.barGap = 0.1;
// Remove the click event from the master chart
s.addEventHandler("mouseover", function (e) {});
// Draw the main chart
myChart.draw();
// Remove the axis shapes from the main chart
x.shapes.selectAll("path,line").remove();
x.titleShape.remove();
y.shapes.selectAll("path,line").remove();
y.titleShape.remove();
if(opts.facet.x === "Dummy") x.shapes.selectAll("text").remove();
if(opts.facet.y === "Dummy") y.shapes.selectAll("text").remove();
// Iterate the shapes from the parent chart
s.shapes.each(function (d) {
// Filter the data set for the quarter and the price tier
// of the current shape
var filteredData = dimple.filterData(data, opts.facet.x, String(d.xField[0]));
filteredData = dimple.filterData(filteredData, opts.facet.y, String(d.yField[0]));
// Draw a new chart which will go in the current shape
var subChart = new dimple.chart(svg, filteredData);
// Get the shape from the main chart on which this chart is based
var shape = d3.select(this);
// Position the chart inside the shape
subChart.setBounds(
parseFloat(shape.attr("x")),
parseFloat(shape.attr("y")) - parseFloat(shape.attr("height")),
parseFloat(shape.attr("width")),
parseFloat(shape.attr("height")));
//dimple allows use of custom CSS with noFormats
if(opts.noFormats) { myChart.noFormats = opts.noFormats; };
//for markimekko and addAxis also have third parameter measure
//so need to evaluate if measure provided
//x axis
var subx;
if(xAxis.measure) {
subx = subChart[xAxis.type]("x",opts.x,xAxis.measure);
} else {
subx = subChart[xAxis.type]("x", opts.x);
};
if(!(xAxis.type === "addPctAxis")) subx.showPercent = xAxis.showPercent;
if (xAxis.orderRule) subx.addOrderRule(xAxis.orderRule);
if (xAxis.grouporderRule) subx.addGroupOrderRule(xAxis.grouporderRule);
if (xAxis.overrideMin) subx.overrideMin = xAxis.overrideMin;
if (xAxis.overrideMax) subx.overrideMax = xAxis.overrideMax;
if (xAxis.overrideMax) subx.overrideMax = xAxis.overrideMax;
if (xAxis.inputFormat) subx.dateParseFormat = xAxis.inputFormat;
if (xAxis.outputFormat) subx.tickFormat = xAxis.outputFormat;
//y axis
var suby;
if(yAxis.measure) {
suby = subChart[yAxis.type]("y",opts.y,yAxis.measure);
} else {
suby = subChart[yAxis.type]("y", opts.y);
};
if(!(yAxis.type === "addPctAxis")) suby.showPercent = yAxis.showPercent;
if (yAxis.orderRule) suby.addOrderRule(yAxis.orderRule);
if (yAxis.grouporderRule) suby.addGroupOrderRule(yAxis.grouporderRule);
if (yAxis.overrideMin) suby.overrideMin = yAxis.overrideMin;
if (yAxis.overrideMax) suby.overrideMax = yAxis.overrideMax;
if (yAxis.inputFormat) suby.dateParseFormat = yAxis.inputFormat;
if (yAxis.outputFormat) suby.tickFormat = yAxis.outputFormat;
//z for bubbles
var subz;
if (!(typeof(zAxis) === 'undefined') && zAxis.type){
if(zAxis.measure) {
subz = subChart[zAxis.type]("z",opts.z,zAxis.measure);
} else {
sub = subChart[zAxis.type]("z", opts.z);
};
if(!(zAxis.type === "addPctAxis")) subz.showPercent = zAxis.showPercent;
if (zAxis.orderRule) subz.addOrderRule(zAxis.orderRule);
if (zAxis.overrideMin) subz.overrideMin = zAxis.overrideMin;
if (zAxis.overrideMax) subz.overrideMax = zAxis.overrideMax;
}
if(d3.keys(colorAxis).length > 0) {
subChart[colorAxis.type](colorAxis.colorSeries,colorAxis.palette) ;
}
//here need think I need to evaluate group and if missing do null
//as the first argument
//if provided need to use groups from opts
var seriesVariables = [];
if(!(opts.facet.x==="Dummy")) seriesVariables.push(opts.facet.x)
if(!(opts.facet.y==="Dummy")) seriesVariables.push(opts.facet.y)
if(opts.hasOwnProperty("groups")) {
seriesVariables.push(opts.groups)
var subs = subChart.addSeries( seriesVariables, dimple.plot[opts.type] );
//series offers an aggregate method that we will also need to check if available
//options available are avg, count, max, min, sum
if (!(typeof(opts.aggregate) === 'undefined')) {
subs.aggregate = eval(opts.aggregate);
}
if (!(typeof(opts.lineWeight) === 'undefined')) {
subs.lineWeight = eval(opts.lineWeight);
}
if (!(typeof(opts.barGap) === 'undefined')) {
subs.barGap = eval(opts.barGap);
}
} else var subs = myChart.addSeries( seriesVariables, dimple.plot[opts.type] );
//unsure if this is best but if legend is provided (not empty) then evaluate
if(d3.keys(legend).length > 0) {
var l =myChart.addLegend();
d3.keys(legend).forEach(function(d){
l[d] = legend[d];
});
}
//quick way to get this going but need to make this cleaner
if(opts.storyboard) {
subChart.setStoryboard(opts.storyboard);
};
subChart.draw();
subCharts.push(subChart);
})
//evaluate which do not fall in column 1 or row 1 to remove
var xpos = d3.extent(subCharts,function(d){return d.x});
var ypos = d3.extent(subCharts,function(d){return d.y});
//get rid of all y for those not in column 1
//can easily customize this to only remove bits and pieces
subCharts.filter(function(d){
return d.x!=xpos[0];
}).forEach(function(d){
d.axes[1].shapes.remove();
d.axes[1].titleShape.remove();
});
//now x for those not in row 1
subCharts.filter(function(d){
return d.y!=ypos[1];
}).forEach(function(d){
d.axes[0].shapes.remove();
d.axes[0].titleShape.remove();
});
})();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment