Fixes for TS0.9.5

This commit is contained in:
Neil Stalker
2013-12-06 22:36:06 +00:00
parent a1bada0ac6
commit d2c9aac1de
6 changed files with 68 additions and 52 deletions
+21 -12
View File
@@ -48,6 +48,10 @@ function testPieChart() {
}
//Example from http://bl.ocks.org/3887051
interface GroupedData {
State: string;
ages: Array<{ name: string; value: number;}>;
}
function groupedBarChart() {
var margin = { top: 20, right: 20, bottom: 30, left: 40 },
width = 960 - margin.left - margin.right,
@@ -79,7 +83,7 @@ function groupedBarChart() {
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
d3.csv("data.csv", function (error, data) {
d3.csv("data.csv", function (error, data: Array<GroupedData>) {
var ageNames = d3.keys(data[0]).filter(function (key) { return key !== "State"; });
data.forEach(function (d) {
@@ -731,6 +735,11 @@ function chainedTransitions() {
}
//Example from http://bl.ocks.org/mbostock/4062085
interface PyramidData {
people: number;
year: number;
age: number;
}
function populationPyramid() {
var margin = { top: 20, right: 40, bottom: 30, left: 20 },
width = 960 - margin.left - margin.right,
@@ -766,7 +775,7 @@ function populationPyramid() {
.attr("dy", ".71em")
.text(2000);
d3.csv("population.csv", function (error, data) {
d3.csv("population.csv", function (error, data: Array<PyramidData>) {
// Convert strings to numbers.
data.forEach(function (d) {
@@ -1470,8 +1479,8 @@ function streamGraph() {
var n = 20, // number of layers
m = 200, // number of samples per layer
stack = d3.layout.stack().offset("wiggle"),
layers0 = stack(d3.range(n).map(function () { return bumpLayer(m); } )),
layers1 = stack(d3.range(n).map(function () { return bumpLayer(m); } ));
layers0 = stack(d3.range(n).map(function () { return bumpLayer(m); })),
layers1 = stack(d3.range(n).map(function () { return bumpLayer(m); }));
var width = 960,
height = 500;
@@ -1481,16 +1490,16 @@ function streamGraph() {
.range([0, width]);
var y = d3.scale.linear()
.domain([0, d3.max(layers0.concat(layers1), function (layer) { return d3.max(layer, function (d) { return d.y0 + d.y; } ); } )])
.domain([0, d3.max(layers0.concat(layers1), function (layer) { return d3.max(layer, function (d) { return d.y0 + d.y; }); })])
.range([height, 0]);
var color = d3.scale.linear()
.range(["#aad", "#556"]);
var area = d3.svg.area()
.x(function (d) { return x(d.x); } )
.y0(function (d) { return y(d.y0); } )
.y1(function (d) { return y(d.y0 + d.y); } );
.x(function (d) { return x(d.x); })
.y0(function (d) { return y(d.y0); })
.y1(function (d) { return y(d.y0 + d.y); });
var svg = d3.select("body").append("svg")
.attr("width", width)
@@ -1500,7 +1509,7 @@ function streamGraph() {
.data(layers0)
.enter().append("path")
.attr("d", area)
.style("fill", function () { return color(Math.random()); } );
.style("fill", function () { return color(Math.random()); });
function transition() {
d3.selectAll("path")
@@ -1508,14 +1517,14 @@ function streamGraph() {
var d = layers1;
layers1 = layers0;
return layers0 = d;
} )
})
.transition()
.duration(2500)
.attr("d", area);
}
// Inspired by Lee Byron's test data generator.
function bumpLayer(n) {
function bumpLayer(n): Array<{x: number; y: number;y0?:number;}> {
function bump(a) {
var x = 1 / (.1 + Math.random()),
@@ -2123,7 +2132,7 @@ function nestTest () {
entries = d3.nest()
.key(function(d) { return d.foo; })
.rollup(function(values) { return d3.sum(values, function(d) { return d.bar; }); })
.rollup(function(values) { return d3.sum<any>(values, function(d) { return d.bar; }); })
.entries([{foo: 1, bar: 2}, {foo: 1, bar: 0}, {foo: 1, bar: 1}, {foo: 2}]);
entries = d3.nest()
Vendored
+2 -2
View File
@@ -200,7 +200,7 @@ declare module D3 {
*
* @param map Array of objects to get the key values from
*/
keys(map: any[]): any[];
keys(map: any): string[];
/**
* List the values of an associative array.
*
@@ -1032,7 +1032,7 @@ declare module D3 {
}
export interface StackLayout {
(layers: any[], index?: number): any[];
<T>(layers: T[], index?: number): T[];
values(accessor?: (d: any) => any): StackLayout;
offset(offset: string): StackLayout;
}