A comparison of the src directory for three versions of d3. Also see d3 src tree.
-
-
Save syntagmatic/4092944 to your computer and use it in GitHub Desktop.
d3 src tree transitions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// nest rows with keys array, requires Underscore.js | |
function burrow(table) { | |
// create simple nested object | |
var obj = {}; | |
_(table).each(function(d) { | |
var _obj = obj; | |
_(d.keys.slice(1)).each(function(key,depth) { | |
_obj[key] = _obj[key] || {} | |
_obj = _obj[key]; | |
}); | |
}); | |
// recursively create children array | |
function descend(obj) { | |
var arr = []; | |
_(obj).each(function(v,k) { | |
var b = { | |
name: k, | |
children: descend(v) | |
}; | |
arr.push(b); | |
}); | |
return arr; | |
}; | |
// nested object | |
return { | |
name: table[0].keys[0], | |
maxDepth: _(table).chain().pluck("keys").pluck("length").max().value(), | |
children: descend(obj) | |
}; | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
size | file | |
---|---|---|
4 | src/core/xhr.js | |
4 | src/core/collapse.js | |
4 | src/core/max.js | |
8 | src/core/rgb.js | |
4 | src/core/requote.js | |
4 | src/core/uninterpolate.js | |
4 | src/core/last.js | |
20 | src/core/selection.js | |
4 | src/core/functor.js | |
8 | src/core/transition.js | |
4 | src/core/dispatch.js | |
4 | src/core/ns.js | |
4 | src/core/timer.js | |
4 | src/core/rebind.js | |
4 | src/core/array.js | |
4 | src/core/descending.js | |
4 | src/core/permute.js | |
4 | src/core/zip.js | |
4 | src/core/merge.js | |
4 | src/core/keys.js | |
4 | src/core/event.js | |
4 | src/core/ease.js | |
4 | src/core/format.js | |
4 | src/core/text.js | |
4 | src/core/split.js | |
4 | src/core/html.js | |
4 | src/core/object.js | |
4 | src/core/ascending.js | |
4 | src/core/bisect.js | |
4 | src/core/range.js | |
4 | src/core/entries.js | |
4 | src/core/round.js | |
4 | src/core/noop.js | |
4 | src/core/sum.js | |
4 | src/core/first.js | |
4 | src/core/values.js | |
4 | src/core/date.js | |
4 | src/core/quantile.js | |
4 | src/core/json.js | |
4 | src/core/call.js | |
8 | src/core/interpolate.js | |
4 | src/core/min.js | |
4 | src/core/xml.js | |
4 | src/core/hsl.js | |
4 | src/core/nest.js | |
4 | src/core/core.js | |
216 | src/core | |
12 | src/chart/box.js | |
4 | src/chart/chart.js | |
8 | src/chart/qq.js | |
8 | src/chart/bullet.js | |
8 | src/chart/horizon.js | |
44 | src/chart | |
4 | src/time/months.js | |
4 | src/time/scale-utc.js | |
4 | src/time/format-utc.js | |
4 | src/time/hour.js | |
4 | src/time/year.js | |
4 | src/time/days.js | |
4 | src/time/week.js | |
4 | src/time/seconds.js | |
4 | src/time/time.js | |
4 | src/time/hours.js | |
4 | src/time/month.js | |
4 | src/time/second.js | |
4 | src/time/minute.js | |
4 | src/time/day.js | |
12 | src/time/format.js | |
4 | src/time/format-iso.js | |
4 | src/time/weeks.js | |
4 | src/time/range.js | |
4 | src/time/years.js | |
4 | src/time/scale.js | |
4 | src/time/minutes.js | |
96 | src/time | |
4 | src/externs.js | |
4 | src/behavior/behavior.js | |
8 | src/behavior/zoom.js | |
16 | src/behavior | |
4 | src/scale/ordinal.js | |
4 | src/scale/sqrt.js | |
4 | src/scale/category.js | |
4 | src/scale/log.js | |
4 | src/scale/bilinear.js | |
4 | src/scale/linear.js | |
4 | src/scale/polylinear.js | |
4 | src/scale/quantize.js | |
4 | src/scale/nice.js | |
4 | src/scale/pow.js | |
4 | src/scale/quantile.js | |
4 | src/scale/scale.js | |
52 | src/scale | |
4 | src/geo/mercator.js | |
4 | src/geo/albers.js | |
4 | src/geo/azimuthal.js | |
4 | src/geo/bounds.js | |
8 | src/geo/path.js | |
4 | src/geo/geo.js | |
32 | src/geo | |
4 | src/end.js | |
4 | src/layout/histogram.js | |
4 | src/layout/chord.js | |
8 | src/layout/tree.js | |
4 | src/layout/hierarchy.js | |
4 | src/layout/cluster.js | |
4 | src/layout/layout.js | |
4 | src/layout/bundle.js | |
8 | src/layout/treemap.js | |
8 | src/layout/stack.js | |
8 | src/layout/pack.js | |
12 | src/layout/force.js | |
4 | src/layout/pie.js | |
4 | src/layout/partition.js | |
80 | src/layout | |
4 | src/svg/chord.js | |
4 | src/svg/diagonal.js | |
4 | src/svg/area-radial.js | |
4 | src/svg/mouse.js | |
4 | src/svg/diagonal-radial.js | |
4 | src/svg/area.js | |
4 | src/svg/line-radial.js | |
4 | src/svg/symbol.js | |
4 | src/svg/svg.js | |
4 | src/svg/touches.js | |
12 | src/svg/line.js | |
4 | src/svg/arc.js | |
60 | src/svg | |
4 | src/csv/csv.js | |
4 | src/csv/parse.js | |
4 | src/csv/format.js | |
16 | src/csv | |
12 | src/geom/voronoi.js | |
4 | src/geom/delaunay.js | |
4 | src/geom/polygon.js | |
4 | src/geom/contour.js | |
4 | src/geom/quadtree.js | |
4 | src/geom/geom.js | |
4 | src/geom/hull.js | |
40 | src/geom | |
4 | src/start.js | |
668 | src |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
size | file | |
---|---|---|
4 | src/core/xhr.js | |
4 | src/core/number.js | |
4 | src/core/xyz.js | |
4 | src/core/collapse.js | |
4 | src/core/max.js | |
4 | src/core/selection-style.js | |
4 | src/core/transition-text.js | |
4 | src/core/mouse.js | |
8 | src/core/rgb.js | |
4 | src/core/selection-datum.js | |
4 | src/core/selection-enter-select.js | |
4 | src/core/median.js | |
4 | src/core/requote.js | |
4 | src/core/uninterpolate.js | |
4 | src/core/transition-selectAll.js | |
4 | src/core/hcl.js | |
4 | src/core/selection-empty.js | |
4 | src/core/last.js | |
4 | src/core/selection.js | |
4 | src/core/functor.js | |
4 | src/core/identity.js | |
4 | src/core/transition.js | |
4 | src/core/dispatch.js | |
4 | src/core/selection-text.js | |
4 | src/core/ns.js | |
4 | src/core/timer.js | |
4 | src/core/transition-remove.js | |
4 | src/core/selection-append.js | |
4 | src/core/rebind.js | |
4 | src/core/class.js | |
4 | src/core/array.js | |
4 | src/core/transition-filter.js | |
4 | src/core/mean.js | |
4 | src/core/descending.js | |
4 | src/core/selection-order.js | |
4 | src/core/selection-node.js | |
4 | src/core/selection-remove.js | |
4 | src/core/selection-selectAll.js | |
4 | src/core/selection-each.js | |
4 | src/core/permute.js | |
4 | src/core/transition-style.js | |
4 | src/core/zip.js | |
4 | src/core/merge.js | |
4 | src/core/random.js | |
4 | src/core/true.js | |
4 | src/core/transition-each.js | |
4 | src/core/keys.js | |
4 | src/core/selection-attr.js | |
4 | src/core/extent.js | |
4 | src/core/event.js | |
4 | src/core/ease.js | |
4 | src/core/format.js | |
4 | src/core/text.js | |
4 | src/core/split.js | |
4 | src/core/html.js | |
4 | src/core/selection-select.js | |
4 | src/core/this.js | |
4 | src/core/transition-select.js | |
4 | src/core/touches.js | |
4 | src/core/ascending.js | |
4 | src/core/transition-duration.js | |
4 | src/core/map.js | |
4 | src/core/transpose.js | |
4 | src/core/selection-on.js | |
4 | src/core/selection-root.js | |
4 | src/core/bisect.js | |
4 | src/core/selection-insert.js | |
4 | src/core/range.js | |
4 | src/core/selection-data.js | |
4 | src/core/selection-filter.js | |
4 | src/core/entries.js | |
4 | src/core/round.js | |
4 | src/core/noop.js | |
4 | src/core/selection-enter.js | |
4 | src/core/transition-delay.js | |
4 | src/core/selection-sort.js | |
4 | src/core/sum.js | |
4 | src/core/formatPrefix.js | |
4 | src/core/first.js | |
4 | src/core/selection-transition.js | |
4 | src/core/values.js | |
4 | src/core/lab.js | |
4 | src/core/selection-property.js | |
4 | src/core/transition-transition.js | |
4 | src/core/transition-attr.js | |
4 | src/core/tween.js | |
4 | src/core/quantile.js | |
4 | src/core/selection-html.js | |
4 | src/core/json.js | |
4 | src/core/color.js | |
8 | src/core/interpolate.js | |
4 | src/core/min.js | |
4 | src/core/xml.js | |
4 | src/core/hsl.js | |
4 | src/core/selection-call.js | |
4 | src/core/selection-classed.js | |
4 | src/core/transform.js | |
4 | src/core/nest.js | |
4 | src/core/core.js | |
408 | src/core | |
4 | src/component.js | |
4 | src/package.js | |
4 | src/time/scale-utc.js | |
4 | src/time/format-utc.js | |
4 | src/time/interval.js | |
4 | src/time/hour.js | |
4 | src/time/year.js | |
4 | src/time/week.js | |
4 | src/time/format-fr_FR.js | |
4 | src/time/time.js | |
4 | src/time/month.js | |
4 | src/time/second.js | |
4 | src/time/minute.js | |
4 | src/time/day.js | |
12 | src/time/format.js | |
4 | src/time/format-iso.js | |
4 | src/time/format-en_GB.js | |
4 | src/time/scale.js | |
4 | src/time/format-ru_RU.js | |
4 | src/time/format-en_US.js | |
84 | src/time | |
4 | src/dsv/csv.js | |
4 | src/dsv/tsv.js | |
4 | src/dsv/dsv.js | |
16 | src/dsv | |
4 | src/behavior/behavior.js | |
8 | src/behavior/zoom.js | |
4 | src/behavior/drag.js | |
20 | src/behavior | |
4 | src/scale/ordinal.js | |
4 | src/scale/sqrt.js | |
4 | src/scale/category.js | |
4 | src/scale/log.js | |
4 | src/scale/threshold.js | |
4 | src/scale/bilinear.js | |
4 | src/scale/identity.js | |
4 | src/scale/linear.js | |
4 | src/scale/polylinear.js | |
4 | src/scale/quantize.js | |
4 | src/scale/nice.js | |
4 | src/scale/pow.js | |
4 | src/scale/quantile.js | |
4 | src/scale/scale.js | |
60 | src/scale | |
4 | src/geo/greatCircle.js | |
4 | src/geo/mercator.js | |
4 | src/geo/albers.js | |
4 | src/geo/greatArc.js | |
4 | src/geo/circle.js | |
4 | src/geo/azimuthal.js | |
4 | src/geo/equirectangular.js | |
4 | src/geo/type.js | |
4 | src/geo/bounds.js | |
4 | src/geo/bonne.js | |
8 | src/geo/path.js | |
4 | src/geo/geo.js | |
56 | src/geo | |
4 | src/end.js | |
4 | src/compat/style.js | |
4 | src/compat/date.js | |
12 | src/compat | |
4 | src/layout/histogram.js | |
4 | src/layout/chord.js | |
8 | src/layout/tree.js | |
4 | src/layout/hierarchy.js | |
4 | src/layout/cluster.js | |
4 | src/layout/layout.js | |
4 | src/layout/bundle.js | |
8 | src/layout/treemap.js | |
8 | src/layout/stack.js | |
8 | src/layout/pack.js | |
12 | src/layout/force.js | |
4 | src/layout/pie.js | |
4 | src/layout/partition.js | |
80 | src/layout | |
4 | src/svg/chord.js | |
4 | src/svg/diagonal.js | |
4 | src/svg/area-radial.js | |
4 | src/svg/mouse.js | |
4 | src/svg/diagonal-radial.js | |
4 | src/svg/area.js | |
4 | src/svg/line-radial.js | |
4 | src/svg/symbol.js | |
12 | src/svg/brush.js | |
4 | src/svg/svg.js | |
4 | src/svg/touches.js | |
12 | src/svg/line.js | |
4 | src/svg/arc.js | |
8 | src/svg/axis.js | |
80 | src/svg | |
12 | src/geom/voronoi.js | |
4 | src/geom/delaunay.js | |
4 | src/geom/polygon.js | |
4 | src/geom/contour.js | |
4 | src/geom/quadtree.js | |
4 | src/geom/geom.js | |
4 | src/geom/hull.js | |
40 | src/geom | |
4 | src/start.js | |
876 | src |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
size | file | |
---|---|---|
4 | src/core/xhr.js | |
4 | src/core/number.js | |
4 | src/core/xyz.js | |
4 | src/core/collapse.js | |
4 | src/core/max.js | |
4 | src/core/selection-style.js | |
4 | src/core/transition-text.js | |
4 | src/core/mouse.js | |
8 | src/core/rgb.js | |
4 | src/core/selection-datum.js | |
4 | src/core/selection-enter-select.js | |
4 | src/core/median.js | |
4 | src/core/requote.js | |
4 | src/core/uninterpolate.js | |
4 | src/core/transition-selectAll.js | |
4 | src/core/hcl.js | |
4 | src/core/selection-empty.js | |
4 | src/core/selection.js | |
4 | src/core/functor.js | |
4 | src/core/identity.js | |
4 | src/core/transition.js | |
4 | src/core/dispatch.js | |
4 | src/core/selection-text.js | |
4 | src/core/transition-tween.js | |
4 | src/core/ns.js | |
4 | src/core/timer.js | |
4 | src/core/transition-remove.js | |
4 | src/core/selection-append.js | |
4 | src/core/rebind.js | |
4 | src/core/class.js | |
4 | src/core/array.js | |
4 | src/core/transition-filter.js | |
4 | src/core/mean.js | |
4 | src/core/descending.js | |
4 | src/core/selection-order.js | |
4 | src/core/selection-node.js | |
4 | src/core/selection-remove.js | |
4 | src/core/selection-selectAll.js | |
4 | src/core/selection-each.js | |
4 | src/core/permute.js | |
4 | src/core/transition-style.js | |
4 | src/core/zip.js | |
4 | src/core/merge.js | |
4 | src/core/random.js | |
4 | src/core/true.js | |
4 | src/core/transition-each.js | |
4 | src/core/keys.js | |
4 | src/core/selection-attr.js | |
4 | src/core/extent.js | |
4 | src/core/event.js | |
4 | src/core/format-locale.js | |
4 | src/core/ease.js | |
8 | src/core/format.js | |
4 | src/core/transition-ease.js | |
4 | src/core/text.js | |
4 | src/core/html.js | |
4 | src/core/selection-select.js | |
4 | src/core/transition-select.js | |
4 | src/core/touches.js | |
4 | src/core/ascending.js | |
4 | src/core/transition-duration.js | |
4 | src/core/map.js | |
4 | src/core/transpose.js | |
4 | src/core/selection-on.js | |
4 | src/core/selection-root.js | |
4 | src/core/bisect.js | |
4 | src/core/selection-insert.js | |
4 | src/core/range.js | |
4 | src/core/selection-data.js | |
4 | src/core/selection-filter.js | |
4 | src/core/entries.js | |
4 | src/core/round.js | |
4 | src/core/noop.js | |
4 | src/core/selection-enter.js | |
4 | src/core/transition-delay.js | |
4 | src/core/selection-sort.js | |
4 | src/core/sum.js | |
4 | src/core/formatPrefix.js | |
4 | src/core/selection-transition.js | |
4 | src/core/values.js | |
4 | src/core/lab.js | |
4 | src/core/selection-property.js | |
4 | src/core/transition-transition.js | |
4 | src/core/transition-attr.js | |
4 | src/core/quantile.js | |
4 | src/core/selection-html.js | |
4 | src/core/json.js | |
4 | src/core/color.js | |
8 | src/core/interpolate.js | |
4 | src/core/min.js | |
4 | src/core/xml.js | |
4 | src/core/hsl.js | |
4 | src/core/selection-call.js | |
4 | src/core/selection-classed.js | |
4 | src/core/transform.js | |
4 | src/core/nest.js | |
4 | src/core/core.js | |
404 | src/core | |
4 | src/component.js | |
4 | src/package.js | |
4 | src/time/scale-utc.js | |
4 | src/time/format-utc.js | |
4 | src/time/interval.js | |
4 | src/time/hour.js | |
4 | src/time/year.js | |
4 | src/time/week.js | |
4 | src/time/time.js | |
4 | src/time/month.js | |
4 | src/time/second.js | |
4 | src/time/minute.js | |
4 | src/time/format-locale.js | |
4 | src/time/day.js | |
12 | src/time/format.js | |
4 | src/time/format-iso.js | |
4 | src/time/scale.js | |
72 | src/time | |
4 | src/dsv/csv.js | |
4 | src/dsv/tsv.js | |
4 | src/dsv/dsv.js | |
16 | src/dsv | |
4 | src/locale.js | |
4 | src/behavior/behavior.js | |
8 | src/behavior/zoom.js | |
4 | src/behavior/drag.js | |
20 | src/behavior | |
4 | src/scale/ordinal.js | |
4 | src/scale/sqrt.js | |
4 | src/scale/category.js | |
4 | src/scale/log.js | |
4 | src/scale/threshold.js | |
4 | src/scale/bilinear.js | |
4 | src/scale/identity.js | |
4 | src/scale/linear.js | |
4 | src/scale/polylinear.js | |
4 | src/scale/quantize.js | |
4 | src/scale/nice.js | |
4 | src/scale/pow.js | |
4 | src/scale/quantile.js | |
4 | src/scale/scale.js | |
60 | src/scale | |
4 | src/geo/compose.js | |
4 | src/geo/mercator.js | |
4 | src/geo/azimuthal-equidistant.js | |
4 | src/geo/albers.js | |
4 | src/geo/greatArc.js | |
16 | src/geo/circle.js | |
4 | src/geo/azimuthal.js | |
4 | src/geo/equirectangular.js | |
4 | src/geo/graticule.js | |
4 | src/geo/azimuthal-equal-area.js | |
4 | src/geo/type.js | |
4 | src/geo/stereographic.js | |
4 | src/geo/bounds.js | |
4 | src/geo/orthographic.js | |
4 | src/geo/rotation.js | |
8 | src/geo/projection.js | |
4 | src/geo/gnomonic.js | |
4 | src/geo/albers-usa.js | |
8 | src/geo/path.js | |
4 | src/geo/geo.js | |
104 | src/geo | |
4 | src/end.js | |
4 | src/compat/style.js | |
4 | src/compat/date.js | |
12 | src/compat | |
4 | src/layout/histogram.js | |
4 | src/layout/chord.js | |
8 | src/layout/tree.js | |
4 | src/layout/hierarchy.js | |
4 | src/layout/cluster.js | |
4 | src/layout/layout.js | |
4 | src/layout/bundle.js | |
8 | src/layout/treemap.js | |
8 | src/layout/stack.js | |
8 | src/layout/pack.js | |
12 | src/layout/force.js | |
4 | src/layout/pie.js | |
4 | src/layout/partition.js | |
80 | src/layout | |
4 | src/svg/chord.js | |
4 | src/svg/diagonal.js | |
4 | src/svg/area-radial.js | |
4 | src/svg/diagonal-radial.js | |
4 | src/svg/area.js | |
4 | src/svg/line-radial.js | |
4 | src/svg/symbol.js | |
12 | src/svg/brush.js | |
4 | src/svg/svg.js | |
12 | src/svg/line.js | |
4 | src/svg/arc.js | |
8 | src/svg/axis.js | |
72 | src/svg | |
12 | src/geom/voronoi.js | |
4 | src/geom/delaunay.js | |
4 | src/geom/polygon.js | |
4 | src/geom/quadtree.js | |
4 | src/geom/geom.js | |
4 | src/geom/hull.js | |
36 | src/geom | |
4 | src/start.js | |
900 | src |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<title></title> | |
<meta charset="utf-8"> | |
<script src="http://d3js.org/d3.v2.js"></script> | |
<script src="http://underscorejs.org/underscore.js"></script> | |
<script src="burrow.js"></script> | |
<style> | |
.node circle { | |
fill: steelblue; | |
stroke-width: 1.5px; | |
stroke: #fff; | |
} | |
.node { | |
font: 10px sans-serif; | |
} | |
.link { | |
fill: none; | |
stroke: #ccc; | |
stroke-opacity: 0.6; | |
stroke-width: 1.5px; | |
} | |
</style> | |
<body> | |
</body> | |
<script> | |
/* Reingold-Tilford Tree */ | |
var diameter = 960; | |
var padding = 210; | |
var tree = d3.layout.tree() | |
.size([360, diameter / 2 - padding]) | |
.separation(function(a, b) { return (a.parent == b.parent ? 1 : 2) / a.depth; }); | |
var diagonal = d3.svg.diagonal.radial() | |
.projection(function(d) { return [d.y, d.x / 180 * Math.PI]; }); | |
var svg = d3.select("body").append("svg") | |
.attr("width", diameter) | |
.attr("height", diameter) | |
.append("g") | |
.attr("transform", "translate(" + diameter / 2 + "," + diameter / 2 + ")"); | |
d3.selection.prototype.moveToFront = function() { | |
return this.each(function() { | |
this.parentNode.appendChild(this); | |
}); | |
}; | |
d3.tsv("d3.v1.tsv", function(files) { | |
var nested1 = processData(files); | |
svg.append("text") | |
.attr("id", "version") | |
.text("v1.29.7") | |
.attr("x", -diameter*0.4) | |
.attr("y", -diameter*0.4) | |
.style("font-size", "32px"); | |
treemap(nested1); | |
d3.tsv("d3.v2.tsv", function(files) { | |
var nested2 = processData(files); | |
function update2() { | |
svg.select("#version") | |
.transition().duration(500) | |
.style("opacity", 0) | |
.transition().delay(500) | |
.text("2.10.3") | |
.transition() | |
.style("opacity", 1) | |
treemap(nested2); | |
}; | |
setTimeout(update2, 5200); | |
d3.tsv("d3.v3.tsv", function(files2) { | |
var nested3 = processData(files2); | |
function update3() { | |
svg.select("#version") | |
.transition().duration(500) | |
.style("opacity", 0) | |
.transition().delay(500) | |
.text("3.0.0pre") | |
.transition() | |
.style("opacity", 1) | |
treemap(nested3); | |
}; | |
setTimeout(update3, 11800); | |
}); | |
}); | |
}); | |
function processData(files) { | |
files.forEach(function(d) { | |
d.size = parseInt(d.size); | |
d.keys = d.file.replace(".js","").split("/"); | |
d.keys.forEach(function(sect,i) { | |
d["section" + i] = sect; | |
}); | |
}); | |
return burrow(files); | |
} | |
function treemap(root) { | |
var nodes = tree.nodes(root), | |
links = tree.links(nodes); | |
var link = svg.selectAll(".link") | |
.data(links, function(d) { return d.source.name + "-" + d.target.name;}) | |
link | |
.transition() | |
.delay(400) | |
.duration(600) | |
.attr("d", diagonal); | |
link | |
.enter().append("path") | |
.attr("class", "link") | |
.attr("d", diagonal) | |
.style("opacity", 0) | |
.transition() | |
.duration(300) | |
.delay(function(d,i) { | |
return 24*i; | |
}) | |
.style("opacity", 1); | |
link.exit() | |
.transition() | |
.duration(400) | |
.style("opacity", 0) | |
.delay(400) | |
.remove(); | |
var node = svg.selectAll(".node") | |
.moveToFront() | |
.data(nodes, function(d) { return d.name + "-" + (d.parent ? d.parent.name : "root");}) | |
node.exit() | |
.transition() | |
.duration(400) | |
.style("opacity", 0) | |
.delay(400) | |
.remove(); | |
node | |
.transition() | |
.delay(400) | |
.duration(800) | |
.attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + d.y + ")"; }) | |
node.selectAll("text") | |
.transition() | |
.duration(800) | |
.attr("font-weight", null) | |
.attr("fill", "#555") | |
.attr("text-anchor", function(d) { return d.x < 180 ? "start" : "end"; }) | |
.attr("transform", function(d) { return d.x < 180 ? "translate(8)" : "rotate(180)translate(-8)"; }) | |
.text(function(d) { return d.name; }); | |
var g = node | |
.enter().append("g") | |
.attr("class", "node") | |
.attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + d.y + ")"; }) | |
g.append("circle") | |
.attr("r", 3) | |
.style("opacity", 0) | |
.transition() | |
.duration(300) | |
.delay(function(d,i) { | |
return 24*i; | |
}) | |
.style("opacity", 1); | |
g.append("text") | |
.attr("dy", ".31em") | |
.attr("font-weight", "bold") | |
.attr("fill", "black") | |
.attr("text-anchor", function(d) { return d.x < 180 ? "start" : "end"; }) | |
.attr("transform", function(d) { return d.x < 180 ? "translate(8)" : "rotate(180)translate(-8)"; }) | |
.text(function(d) { return d.name; }) | |
.style("opacity", 0) | |
.transition() | |
.duration(300) | |
.delay(function(d,i) { | |
return 24*i; | |
}) | |
.style("opacity", 1); | |
}; | |
d3.select(self.frameElement).style("height", diameter + "px"); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment