Skip to content

Commit

Permalink
Moving data generation to separate file.
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Seibel committed Jul 27, 2012
1 parent 0530a12 commit 6157a0f
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 81 deletions.
98 changes: 98 additions & 0 deletions data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
;(function (exports) {

exports.ggData = {};

// Generate some random data.
ggData.data = (function () {
var data = [];
var x = 0;
var y = 0;
_.times(20, function () {
x += Math.random() * 30;
y += 20 - Math.random() * 30;
data.push({
d: x,
r: y,
});
});
return data;
}());

// Generate some random data for plotting semi-log.
ggData.semiLogData = (function () {
var data = [];
var x = 0;
var y = 1;
_.times(20, function () {
x += Math.random() * 30;
y *= Math.random() * 5;
data.push({
d: x,
r: y,
});
});
return data;
}());


// Some categorical data
ggData.categoricalData = [
{ category: 'foo', count: 100 },
{ category: 'bar', count: 59 },
{ category: 'baz', count: 212 },
{ category: 'quux', count: 76 }
];

// Some random variables.
var randomHeight = d3.random.normal(66, 18);
var randomBMI = d3.random.normal(21.75, 3);
var standardNormal = d3.random.normal();

// bmi = lbs/inches^2 * 703.06958
// lbs = bmi * inches^2 / 703.06958

// Some data to be plotted with a histograpm
ggData.heightWeight = (function () {
var data = [];
_.times(20000, function () {
var inches = randomHeight();
var lbs = randomBMI() * inches * inches / 703.06958;
data.push({
// These should really be correlated.
height: inches,
weight: lbs,
});
});
return data;
}());

ggData.normalData = _.map(_.range(20000), function (i) { return { v: standardNormal() }; });

// Pre-digested data for box plot geometry.
ggData.boxPlotData = [
{ group: 'a', 'median': 200, 'q1': 50, 'q3': 275, 'lower': 25, 'upper': 360, 'outliers': [ -200, -175, 0, 10, 400, 500 ] },
{ group: 'b', 'median': 350, 'q1': 60, 'q3': 375, 'lower': 20, 'upper': 500, 'outliers': [ -150, -100, 0, 5, 550, 575, 650 ] },
];

// Data intended to be digested for box plotting.
ggData.dataForBoxPlots = (function () {
var names = ['a', 'b', 'c', 'd' ];
var randomMeans = d3.random.normal(500, 20);
var randomStddevs = d3.random.normal(50, 10);
var groups = _.map(names, function (n) {
return {
name: n,
rng: d3.random.normal(randomMeans(), randomStddevs)
}
});
return _.map(_.range(20000), function () {
var g = groups[Math.floor(Math.random() * groups.length)];
return {
group: g.name,
value: g.rng()
};
});
}());


})(window);
91 changes: 10 additions & 81 deletions examples.js
Original file line number Diff line number Diff line change
@@ -1,76 +1,5 @@
;(function () {

// Generate some random data.
var data = (function () {
var data = [];
var x = 0;
var y = 0;
_.times(20, function () {
x += Math.random() * 30;
y += 20 - Math.random() * 30;
data.push({
d: x,
r: y,
});
});
return data;
}());

// Generate some random data for plotting semi-log.
var semiLogData = (function () {
var data = [];
var x = 0;
var y = 1;
_.times(20, function () {
x += Math.random() * 30;
y *= Math.random() * 5;
data.push({
d: x,
r: y,
});
});
return data;
}());


// Some categorical data
var categoricalData = [
{ category: 'foo', count: 100 },
{ category: 'bar', count: 59 },
{ category: 'baz', count: 212 },
{ category: 'quux', count: 76 }
];

// Some random variables.
var randomHeight = d3.random.normal(66, 18);
var randomBMI = d3.random.normal(21.75, 3);
var standardNormal = d3.random.normal();

// bmi = lbs/inches^2 * 703.06958
// lbs = bmi * inches^2 / 703.06958

// Some data to be plotted with a histograpm
var heightWeight = (function () {
var data = [];
_.times(20000, function () {
var inches = randomHeight();
var lbs = randomBMI() * inches * inches / 703.06958;
data.push({
// These should really be correlated.
height: inches,
weight: lbs,
});
});
return data;
}());

var normalData = _.map(_.range(20000), function (i) { return { v: standardNormal() }; });

var boxPlotData = [
{ group: 'a', 'median': 200, 'q1': 50, 'q3': 275, 'lower': 25, 'upper': 360, 'outliers': [ -200, -175, 0, 10, 400, 500 ] },
{ group: 'b', 'median': 350, 'q1': 60, 'q3': 375, 'lower': 20, 'upper': 500, 'outliers': [ -150, -100, 0, 5, 550, 575, 650 ] },
];

$(document).ready(function() {

function ex () { return d3.select('#examples').append('span'); }
Expand Down Expand Up @@ -176,16 +105,16 @@
});

// ... and render 'em
scatterplot.render(ex(), data);
linechart.render(ex(), data);
barchart.render(ex(), data);
histogram.render(ex(), categoricalData);
combined_points_and_line.render(ex(), data);
semi_log_scale.render(ex(), semiLogData);
heightHistogram.render(ex(), heightWeight);
heightWeightScatter.render(ex(), heightWeight);
//normalHistogram.render(ex(), normalData);
boxPlot.render(ex(), boxPlotData);
scatterplot.render(ex(), ggData.data);
linechart.render(ex(), ggData.data);
barchart.render(ex(), ggData.data);
histogram.render(ex(), ggData.categoricalData);
combined_points_and_line.render(ex(), ggData.data);
semi_log_scale.render(ex(), ggData.semiLogData);
heightHistogram.render(ex(), ggData.heightWeight);
heightWeightScatter.render(ex(), ggData.heightWeight);
//normalHistogram.render(ex(), ggData.normalData);
boxPlot.render(ex(), ggData.boxPlotData);

});

Expand Down
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<script src="d3.v2.min.js"></script>
<script src="underscore-min.js"></script>
<script src="gg.js"></script>
<script src="data.js"></script>
<script src="examples.js"></script>
</title>
<body>
Expand Down

0 comments on commit 6157a0f

Please sign in to comment.