Skip to content

Tree mark ^0.4.3

The tree mark produces tree diagrams using the tree transform. It is a composite mark, consisting of a link to render links from parent to child, an optional dot for nodes, and one or two text for node labels. The link mark uses the treeLink transform, while the dot and text marks use the treeNode transform.

For example, here is a little family tree of Greek gods.

/Chaos/Chaos/Eros/Chaos/Erebus/Chaos/Tartarus/Chaos/Gaia/Chaos/Gaia/Mountains/Chaos/Gaia/Pontus/Chaos/Gaia/UranusEros/Chaos/ErosErebus/Chaos/ErebusTartarus/Chaos/TartarusMountains/Chaos/Gaia/MountainsPontus/Chaos/Gaia/PontusUranus/Chaos/Gaia/UranusChaos/ChaosGaia/Chaos/GaiaFork
js
Plot.plot({
  axis: null,
  height: 100,
  margin: 10,
  marginLeft: 40,
  marginRight: 120,
  marks: [
    Plot.tree(gods, {textStroke: "white"})
  ]
})

Here gods is an array of slash-separated paths, similar to paths in a file system. Each path represents the hierarchical position of a node in the tree.

js
gods = [
  "Chaos/Gaia/Mountains",
  "Chaos/Gaia/Pontus",
  "Chaos/Gaia/Uranus",
  "Chaos/Eros",
  "Chaos/Erebus",
  "Chaos/Tartarus"
]

As a more complete example, here is a visualization of a software package hierarchy.

/flare/flare/analytics/flare/animate/flare/data/flare/display/flare/flex/flare/physics/flare/query/flare/scale/flare/util/flare/vis/flare/analytics/cluster/flare/analytics/graph/flare/analytics/optimization/flare/animate/Easing/flare/animate/FunctionSequence/flare/animate/interpolate/flare/animate/ISchedulable/flare/animate/Parallel/flare/animate/Pause/flare/animate/Scheduler/flare/animate/Sequence/flare/animate/Transition/flare/animate/Transitioner/flare/animate/TransitionEvent/flare/animate/Tween/flare/data/converters/flare/data/DataField/flare/data/DataSchema/flare/data/DataSet/flare/data/DataSource/flare/data/DataTable/flare/data/DataUtil/flare/display/DirtySprite/flare/display/LineSprite/flare/display/RectSprite/flare/display/TextSprite/flare/flex/FlareVis/flare/physics/DragForce/flare/physics/GravityForce/flare/physics/IForce/flare/physics/NBodyForce/flare/physics/Particle/flare/physics/Simulation/flare/physics/Spring/flare/physics/SpringForce/flare/query/AggregateExpression/flare/query/And/flare/query/Arithmetic/flare/query/Average/flare/query/BinaryExpression/flare/query/Comparison/flare/query/CompositeExpression/flare/query/Count/flare/query/DateUtil/flare/query/Distinct/flare/query/Expression/flare/query/ExpressionIterator/flare/query/Fn/flare/query/If/flare/query/IsA/flare/query/Literal/flare/query/Match/flare/query/Maximum/flare/query/methods/flare/query/Minimum/flare/query/Not/flare/query/Or/flare/query/Query/flare/query/Range/flare/query/StringUtil/flare/query/Sum/flare/query/Variable/flare/query/Variance/flare/query/Xor/flare/scale/IScaleMap/flare/scale/LinearScale/flare/scale/LogScale/flare/scale/OrdinalScale/flare/scale/QuantileScale/flare/scale/QuantitativeScale/flare/scale/RootScale/flare/scale/Scale/flare/scale/ScaleType/flare/scale/TimeScale/flare/util/Arrays/flare/util/Colors/flare/util/Dates/flare/util/Displays/flare/util/Filter/flare/util/Geometry/flare/util/heap/flare/util/IEvaluable/flare/util/IPredicate/flare/util/IValueProxy/flare/util/math/flare/util/Maths/flare/util/Orientation/flare/util/palette/flare/util/Property/flare/util/Shapes/flare/util/Sort/flare/util/Stats/flare/util/Strings/flare/vis/axis/flare/vis/controls/flare/vis/data/flare/vis/events/flare/vis/legend/flare/vis/operator/flare/vis/Visualization/flare/analytics/cluster/AgglomerativeCluster/flare/analytics/cluster/CommunityStructure/flare/analytics/cluster/HierarchicalCluster/flare/analytics/cluster/MergeEdge/flare/analytics/graph/BetweennessCentrality/flare/analytics/graph/LinkDistance/flare/analytics/graph/MaxFlowMinCut/flare/analytics/graph/ShortestPaths/flare/analytics/graph/SpanningTree/flare/analytics/optimization/AspectRatioBanker/flare/animate/interpolate/ArrayInterpolator/flare/animate/interpolate/ColorInterpolator/flare/animate/interpolate/DateInterpolator/flare/animate/interpolate/Interpolator/flare/animate/interpolate/MatrixInterpolator/flare/animate/interpolate/NumberInterpolator/flare/animate/interpolate/ObjectInterpolator/flare/animate/interpolate/PointInterpolator/flare/animate/interpolate/RectangleInterpolator/flare/data/converters/Converters/flare/data/converters/DelimitedTextConverter/flare/data/converters/GraphMLConverter/flare/data/converters/IDataConverter/flare/data/converters/JSONConverter/flare/query/methods/add/flare/query/methods/and/flare/query/methods/average/flare/query/methods/count/flare/query/methods/distinct/flare/query/methods/div/flare/query/methods/eq/flare/query/methods/fn/flare/query/methods/gt/flare/query/methods/gte/flare/query/methods/iff/flare/query/methods/isa/flare/query/methods/lt/flare/query/methods/lte/flare/query/methods/max/flare/query/methods/min/flare/query/methods/mod/flare/query/methods/mul/flare/query/methods/neq/flare/query/methods/not/flare/query/methods/or/flare/query/methods/orderby/flare/query/methods/range/flare/query/methods/select/flare/query/methods/stddev/flare/query/methods/sub/flare/query/methods/sum/flare/query/methods/update/flare/query/methods/variance/flare/query/methods/where/flare/query/methods/xor/flare/query/methods/_/flare/util/heap/FibonacciHeap/flare/util/heap/HeapNode/flare/util/math/DenseMatrix/flare/util/math/IMatrix/flare/util/math/SparseMatrix/flare/util/palette/ColorPalette/flare/util/palette/Palette/flare/util/palette/ShapePalette/flare/util/palette/SizePalette/flare/vis/axis/Axes/flare/vis/axis/Axis/flare/vis/axis/AxisGridLine/flare/vis/axis/AxisLabel/flare/vis/axis/CartesianAxes/flare/vis/controls/AnchorControl/flare/vis/controls/ClickControl/flare/vis/controls/Control/flare/vis/controls/ControlList/flare/vis/controls/DragControl/flare/vis/controls/ExpandControl/flare/vis/controls/HoverControl/flare/vis/controls/IControl/flare/vis/controls/PanZoomControl/flare/vis/controls/SelectionControl/flare/vis/controls/TooltipControl/flare/vis/data/Data/flare/vis/data/DataList/flare/vis/data/DataSprite/flare/vis/data/EdgeSprite/flare/vis/data/NodeSprite/flare/vis/data/render/flare/vis/data/ScaleBinding/flare/vis/data/Tree/flare/vis/data/TreeBuilder/flare/vis/events/DataEvent/flare/vis/events/SelectionEvent/flare/vis/events/TooltipEvent/flare/vis/events/VisualizationEvent/flare/vis/legend/Legend/flare/vis/legend/LegendItem/flare/vis/legend/LegendRange/flare/vis/operator/distortion/flare/vis/operator/encoder/flare/vis/operator/filter/flare/vis/operator/IOperator/flare/vis/operator/label/flare/vis/operator/layout/flare/vis/operator/Operator/flare/vis/operator/OperatorList/flare/vis/operator/OperatorSequence/flare/vis/operator/OperatorSwitch/flare/vis/operator/SortOperator/flare/vis/data/render/ArrowType/flare/vis/data/render/EdgeRenderer/flare/vis/data/render/IRenderer/flare/vis/data/render/ShapeRenderer/flare/vis/operator/distortion/BifocalDistortion/flare/vis/operator/distortion/Distortion/flare/vis/operator/distortion/FisheyeDistortion/flare/vis/operator/encoder/ColorEncoder/flare/vis/operator/encoder/Encoder/flare/vis/operator/encoder/PropertyEncoder/flare/vis/operator/encoder/ShapeEncoder/flare/vis/operator/encoder/SizeEncoder/flare/vis/operator/filter/FisheyeTreeFilter/flare/vis/operator/filter/GraphDistanceFilter/flare/vis/operator/filter/VisibilityFilter/flare/vis/operator/label/Labeler/flare/vis/operator/label/RadialLabeler/flare/vis/operator/label/StackedAreaLabeler/flare/vis/operator/layout/AxisLayout/flare/vis/operator/layout/BundledEdgeRouter/flare/vis/operator/layout/CircleLayout/flare/vis/operator/layout/CirclePackingLayout/flare/vis/operator/layout/DendrogramLayout/flare/vis/operator/layout/ForceDirectedLayout/flare/vis/operator/layout/IcicleTreeLayout/flare/vis/operator/layout/IndentedTreeLayout/flare/vis/operator/layout/Layout/flare/vis/operator/layout/NodeLinkTreeLayout/flare/vis/operator/layout/PieLayout/flare/vis/operator/layout/RadialTreeLayout/flare/vis/operator/layout/RandomLayout/flare/vis/operator/layout/StackedAreaLayout/flare/vis/operator/layout/TreeMapLayoutEasing/flare/animate/EasingFunctionSequence/flare/animate/FunctionSequenceISchedulable/flare/animate/ISchedulableParallel/flare/animate/ParallelPause/flare/animate/PauseScheduler/flare/animate/SchedulerSequence/flare/animate/SequenceTransition/flare/animate/TransitionTransitioner/flare/animate/TransitionerTransitionEvent/flare/animate/TransitionEventTween/flare/animate/TweenDataField/flare/data/DataFieldDataSchema/flare/data/DataSchemaDataSet/flare/data/DataSetDataSource/flare/data/DataSourceDataTable/flare/data/DataTableDataUtil/flare/data/DataUtilDirtySprite/flare/display/DirtySpriteLineSprite/flare/display/LineSpriteRectSprite/flare/display/RectSpriteTextSprite/flare/display/TextSpriteFlareVis/flare/flex/FlareVisDragForce/flare/physics/DragForceGravityForce/flare/physics/GravityForceIForce/flare/physics/IForceNBodyForce/flare/physics/NBodyForceParticle/flare/physics/ParticleSimulation/flare/physics/SimulationSpring/flare/physics/SpringSpringForce/flare/physics/SpringForceAggregateExpression/flare/query/AggregateExpressionAnd/flare/query/AndArithmetic/flare/query/ArithmeticAverage/flare/query/AverageBinaryExpression/flare/query/BinaryExpressionComparison/flare/query/ComparisonCompositeExpression/flare/query/CompositeExpressionCount/flare/query/CountDateUtil/flare/query/DateUtilDistinct/flare/query/DistinctExpression/flare/query/ExpressionExpressionIterator/flare/query/ExpressionIteratorFn/flare/query/FnIf/flare/query/IfIsA/flare/query/IsALiteral/flare/query/LiteralMatch/flare/query/MatchMaximum/flare/query/MaximumMinimum/flare/query/MinimumNot/flare/query/NotOr/flare/query/OrQuery/flare/query/QueryRange/flare/query/RangeStringUtil/flare/query/StringUtilSum/flare/query/SumVariable/flare/query/VariableVariance/flare/query/VarianceXor/flare/query/XorIScaleMap/flare/scale/IScaleMapLinearScale/flare/scale/LinearScaleLogScale/flare/scale/LogScaleOrdinalScale/flare/scale/OrdinalScaleQuantileScale/flare/scale/QuantileScaleQuantitativeScale/flare/scale/QuantitativeScaleRootScale/flare/scale/RootScaleScale/flare/scale/ScaleScaleType/flare/scale/ScaleTypeTimeScale/flare/scale/TimeScaleArrays/flare/util/ArraysColors/flare/util/ColorsDates/flare/util/DatesDisplays/flare/util/DisplaysFilter/flare/util/FilterGeometry/flare/util/GeometryIEvaluable/flare/util/IEvaluableIPredicate/flare/util/IPredicateIValueProxy/flare/util/IValueProxyMaths/flare/util/MathsOrientation/flare/util/OrientationProperty/flare/util/PropertyShapes/flare/util/ShapesSort/flare/util/SortStats/flare/util/StatsStrings/flare/util/StringsVisualization/flare/vis/VisualizationAgglomerativeCluster/flare/analytics/cluster/AgglomerativeClusterCommunityStructure/flare/analytics/cluster/CommunityStructureHierarchicalCluster/flare/analytics/cluster/HierarchicalClusterMergeEdge/flare/analytics/cluster/MergeEdgeBetweennessCentrality/flare/analytics/graph/BetweennessCentralityLinkDistance/flare/analytics/graph/LinkDistanceMaxFlowMinCut/flare/analytics/graph/MaxFlowMinCutShortestPaths/flare/analytics/graph/ShortestPathsSpanningTree/flare/analytics/graph/SpanningTreeAspectRatioBanker/flare/analytics/optimization/AspectRatioBankerArrayInterpolator/flare/animate/interpolate/ArrayInterpolatorColorInterpolator/flare/animate/interpolate/ColorInterpolatorDateInterpolator/flare/animate/interpolate/DateInterpolatorInterpolator/flare/animate/interpolate/InterpolatorMatrixInterpolator/flare/animate/interpolate/MatrixInterpolatorNumberInterpolator/flare/animate/interpolate/NumberInterpolatorObjectInterpolator/flare/animate/interpolate/ObjectInterpolatorPointInterpolator/flare/animate/interpolate/PointInterpolatorRectangleInterpolator/flare/animate/interpolate/RectangleInterpolatorConverters/flare/data/converters/ConvertersDelimitedTextConverter/flare/data/converters/DelimitedTextConverterGraphMLConverter/flare/data/converters/GraphMLConverterIDataConverter/flare/data/converters/IDataConverterJSONConverter/flare/data/converters/JSONConverteradd/flare/query/methods/addand/flare/query/methods/andaverage/flare/query/methods/averagecount/flare/query/methods/countdistinct/flare/query/methods/distinctdiv/flare/query/methods/diveq/flare/query/methods/eqfn/flare/query/methods/fngt/flare/query/methods/gtgte/flare/query/methods/gteiff/flare/query/methods/iffisa/flare/query/methods/isalt/flare/query/methods/ltlte/flare/query/methods/ltemax/flare/query/methods/maxmin/flare/query/methods/minmod/flare/query/methods/modmul/flare/query/methods/mulneq/flare/query/methods/neqnot/flare/query/methods/notor/flare/query/methods/ororderby/flare/query/methods/orderbyrange/flare/query/methods/rangeselect/flare/query/methods/selectstddev/flare/query/methods/stddevsub/flare/query/methods/subsum/flare/query/methods/sumupdate/flare/query/methods/updatevariance/flare/query/methods/variancewhere/flare/query/methods/wherexor/flare/query/methods/xor_/flare/query/methods/_FibonacciHeap/flare/util/heap/FibonacciHeapHeapNode/flare/util/heap/HeapNodeDenseMatrix/flare/util/math/DenseMatrixIMatrix/flare/util/math/IMatrixSparseMatrix/flare/util/math/SparseMatrixColorPalette/flare/util/palette/ColorPalettePalette/flare/util/palette/PaletteShapePalette/flare/util/palette/ShapePaletteSizePalette/flare/util/palette/SizePaletteAxes/flare/vis/axis/AxesAxis/flare/vis/axis/AxisAxisGridLine/flare/vis/axis/AxisGridLineAxisLabel/flare/vis/axis/AxisLabelCartesianAxes/flare/vis/axis/CartesianAxesAnchorControl/flare/vis/controls/AnchorControlClickControl/flare/vis/controls/ClickControlControl/flare/vis/controls/ControlControlList/flare/vis/controls/ControlListDragControl/flare/vis/controls/DragControlExpandControl/flare/vis/controls/ExpandControlHoverControl/flare/vis/controls/HoverControlIControl/flare/vis/controls/IControlPanZoomControl/flare/vis/controls/PanZoomControlSelectionControl/flare/vis/controls/SelectionControlTooltipControl/flare/vis/controls/TooltipControlData/flare/vis/data/DataDataList/flare/vis/data/DataListDataSprite/flare/vis/data/DataSpriteEdgeSprite/flare/vis/data/EdgeSpriteNodeSprite/flare/vis/data/NodeSpriteScaleBinding/flare/vis/data/ScaleBindingTree/flare/vis/data/TreeTreeBuilder/flare/vis/data/TreeBuilderDataEvent/flare/vis/events/DataEventSelectionEvent/flare/vis/events/SelectionEventTooltipEvent/flare/vis/events/TooltipEventVisualizationEvent/flare/vis/events/VisualizationEventLegend/flare/vis/legend/LegendLegendItem/flare/vis/legend/LegendItemLegendRange/flare/vis/legend/LegendRangeIOperator/flare/vis/operator/IOperatorOperator/flare/vis/operator/OperatorOperatorList/flare/vis/operator/OperatorListOperatorSequence/flare/vis/operator/OperatorSequenceOperatorSwitch/flare/vis/operator/OperatorSwitchSortOperator/flare/vis/operator/SortOperatorArrowType/flare/vis/data/render/ArrowTypeEdgeRenderer/flare/vis/data/render/EdgeRendererIRenderer/flare/vis/data/render/IRendererShapeRenderer/flare/vis/data/render/ShapeRendererBifocalDistortion/flare/vis/operator/distortion/BifocalDistortionDistortion/flare/vis/operator/distortion/DistortionFisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortionColorEncoder/flare/vis/operator/encoder/ColorEncoderEncoder/flare/vis/operator/encoder/EncoderPropertyEncoder/flare/vis/operator/encoder/PropertyEncoderShapeEncoder/flare/vis/operator/encoder/ShapeEncoderSizeEncoder/flare/vis/operator/encoder/SizeEncoderFisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilterGraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilterVisibilityFilter/flare/vis/operator/filter/VisibilityFilterLabeler/flare/vis/operator/label/LabelerRadialLabeler/flare/vis/operator/label/RadialLabelerStackedAreaLabeler/flare/vis/operator/label/StackedAreaLabelerAxisLayout/flare/vis/operator/layout/AxisLayoutBundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouterCircleLayout/flare/vis/operator/layout/CircleLayoutCirclePackingLayout/flare/vis/operator/layout/CirclePackingLayoutDendrogramLayout/flare/vis/operator/layout/DendrogramLayoutForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayoutIcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayoutIndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayoutLayout/flare/vis/operator/layout/LayoutNodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayoutPieLayout/flare/vis/operator/layout/PieLayoutRadialTreeLayout/flare/vis/operator/layout/RadialTreeLayoutRandomLayout/flare/vis/operator/layout/RandomLayoutStackedAreaLayout/flare/vis/operator/layout/StackedAreaLayoutTreeMapLayout/flare/vis/operator/layout/TreeMapLayoutflare/flareanalytics/flare/analyticsanimate/flare/animatedata/flare/datadisplay/flare/displayflex/flare/flexphysics/flare/physicsquery/flare/queryscale/flare/scaleutil/flare/utilvis/flare/viscluster/flare/analytics/clustergraph/flare/analytics/graphoptimization/flare/analytics/optimizationinterpolate/flare/animate/interpolateconverters/flare/data/convertersmethods/flare/query/methodsheap/flare/util/heapmath/flare/util/mathpalette/flare/util/paletteaxis/flare/vis/axiscontrols/flare/vis/controlsdata/flare/vis/dataevents/flare/vis/eventslegend/flare/vis/legendoperator/flare/vis/operatorrender/flare/vis/data/renderdistortion/flare/vis/operator/distortionencoder/flare/vis/operator/encoderfilter/flare/vis/operator/filterlabel/flare/vis/operator/labellayout/flare/vis/operator/layoutFork
js
Plot.plot({
  axis: null,
  margin: 10,
  marginLeft: 30,
  marginRight: 160,
  width: 688,
  height: 1800,
  marks: [
    Plot.tree(flare, {path: "name", delimiter: ".", textStroke: "white"})
  ]
})

The treeLayout option specifies the layout algorithm. The tree mark uses the Reingold–Tilford “tidy” tree algorithm, d3.tree, by default. The cluster convenience method sets treeLayout to d3.cluster, aligning the leaf nodes.

/flare/flare/display/flare/flex/flare/physics/flare/scale/flare/analytics/flare/animate/flare/data/flare/query/flare/util/flare/vis/flare/display/DirtySprite/flare/display/LineSprite/flare/display/RectSprite/flare/display/TextSprite/flare/flex/FlareVis/flare/physics/DragForce/flare/physics/GravityForce/flare/physics/IForce/flare/physics/NBodyForce/flare/physics/Particle/flare/physics/Simulation/flare/physics/Spring/flare/physics/SpringForce/flare/scale/IScaleMap/flare/scale/LinearScale/flare/scale/LogScale/flare/scale/OrdinalScale/flare/scale/QuantileScale/flare/scale/QuantitativeScale/flare/scale/RootScale/flare/scale/Scale/flare/scale/ScaleType/flare/scale/TimeScale/flare/analytics/cluster/flare/analytics/graph/flare/analytics/optimization/flare/animate/Easing/flare/animate/FunctionSequence/flare/animate/ISchedulable/flare/animate/Parallel/flare/animate/Pause/flare/animate/Scheduler/flare/animate/Sequence/flare/animate/Transition/flare/animate/Transitioner/flare/animate/TransitionEvent/flare/animate/Tween/flare/animate/interpolate/flare/data/DataField/flare/data/DataSchema/flare/data/DataSet/flare/data/DataSource/flare/data/DataTable/flare/data/DataUtil/flare/data/converters/flare/query/AggregateExpression/flare/query/And/flare/query/Arithmetic/flare/query/Average/flare/query/BinaryExpression/flare/query/Comparison/flare/query/CompositeExpression/flare/query/Count/flare/query/DateUtil/flare/query/Distinct/flare/query/Expression/flare/query/ExpressionIterator/flare/query/Fn/flare/query/If/flare/query/IsA/flare/query/Literal/flare/query/Match/flare/query/Maximum/flare/query/Minimum/flare/query/Not/flare/query/Or/flare/query/Query/flare/query/Range/flare/query/StringUtil/flare/query/Sum/flare/query/Variable/flare/query/Variance/flare/query/Xor/flare/query/methods/flare/util/Arrays/flare/util/Colors/flare/util/Dates/flare/util/Displays/flare/util/Filter/flare/util/Geometry/flare/util/IEvaluable/flare/util/IPredicate/flare/util/IValueProxy/flare/util/Maths/flare/util/Orientation/flare/util/Property/flare/util/Shapes/flare/util/Sort/flare/util/Stats/flare/util/Strings/flare/util/heap/flare/util/math/flare/util/palette/flare/vis/Visualization/flare/vis/axis/flare/vis/controls/flare/vis/events/flare/vis/legend/flare/vis/data/flare/vis/operator/flare/analytics/cluster/AgglomerativeCluster/flare/analytics/cluster/CommunityStructure/flare/analytics/cluster/HierarchicalCluster/flare/analytics/cluster/MergeEdge/flare/analytics/graph/BetweennessCentrality/flare/analytics/graph/LinkDistance/flare/analytics/graph/MaxFlowMinCut/flare/analytics/graph/ShortestPaths/flare/analytics/graph/SpanningTree/flare/analytics/optimization/AspectRatioBanker/flare/animate/interpolate/ArrayInterpolator/flare/animate/interpolate/ColorInterpolator/flare/animate/interpolate/DateInterpolator/flare/animate/interpolate/Interpolator/flare/animate/interpolate/MatrixInterpolator/flare/animate/interpolate/NumberInterpolator/flare/animate/interpolate/ObjectInterpolator/flare/animate/interpolate/PointInterpolator/flare/animate/interpolate/RectangleInterpolator/flare/data/converters/Converters/flare/data/converters/DelimitedTextConverter/flare/data/converters/GraphMLConverter/flare/data/converters/IDataConverter/flare/data/converters/JSONConverter/flare/query/methods/add/flare/query/methods/and/flare/query/methods/average/flare/query/methods/count/flare/query/methods/distinct/flare/query/methods/div/flare/query/methods/eq/flare/query/methods/fn/flare/query/methods/gt/flare/query/methods/gte/flare/query/methods/iff/flare/query/methods/isa/flare/query/methods/lt/flare/query/methods/lte/flare/query/methods/max/flare/query/methods/min/flare/query/methods/mod/flare/query/methods/mul/flare/query/methods/neq/flare/query/methods/not/flare/query/methods/or/flare/query/methods/orderby/flare/query/methods/range/flare/query/methods/select/flare/query/methods/stddev/flare/query/methods/sub/flare/query/methods/sum/flare/query/methods/update/flare/query/methods/variance/flare/query/methods/where/flare/query/methods/xor/flare/query/methods/_/flare/util/heap/FibonacciHeap/flare/util/heap/HeapNode/flare/util/math/DenseMatrix/flare/util/math/IMatrix/flare/util/math/SparseMatrix/flare/util/palette/ColorPalette/flare/util/palette/Palette/flare/util/palette/ShapePalette/flare/util/palette/SizePalette/flare/vis/axis/Axes/flare/vis/axis/Axis/flare/vis/axis/AxisGridLine/flare/vis/axis/AxisLabel/flare/vis/axis/CartesianAxes/flare/vis/controls/AnchorControl/flare/vis/controls/ClickControl/flare/vis/controls/Control/flare/vis/controls/ControlList/flare/vis/controls/DragControl/flare/vis/controls/ExpandControl/flare/vis/controls/HoverControl/flare/vis/controls/IControl/flare/vis/controls/PanZoomControl/flare/vis/controls/SelectionControl/flare/vis/controls/TooltipControl/flare/vis/events/DataEvent/flare/vis/events/SelectionEvent/flare/vis/events/TooltipEvent/flare/vis/events/VisualizationEvent/flare/vis/legend/Legend/flare/vis/legend/LegendItem/flare/vis/legend/LegendRange/flare/vis/data/Data/flare/vis/data/DataList/flare/vis/data/DataSprite/flare/vis/data/EdgeSprite/flare/vis/data/NodeSprite/flare/vis/data/ScaleBinding/flare/vis/data/Tree/flare/vis/data/TreeBuilder/flare/vis/data/render/flare/vis/operator/IOperator/flare/vis/operator/Operator/flare/vis/operator/OperatorList/flare/vis/operator/OperatorSequence/flare/vis/operator/OperatorSwitch/flare/vis/operator/SortOperator/flare/vis/operator/distortion/flare/vis/operator/encoder/flare/vis/operator/filter/flare/vis/operator/label/flare/vis/operator/layout/flare/vis/data/render/ArrowType/flare/vis/data/render/EdgeRenderer/flare/vis/data/render/IRenderer/flare/vis/data/render/ShapeRenderer/flare/vis/operator/distortion/BifocalDistortion/flare/vis/operator/distortion/Distortion/flare/vis/operator/distortion/FisheyeDistortion/flare/vis/operator/encoder/ColorEncoder/flare/vis/operator/encoder/Encoder/flare/vis/operator/encoder/PropertyEncoder/flare/vis/operator/encoder/ShapeEncoder/flare/vis/operator/encoder/SizeEncoder/flare/vis/operator/filter/FisheyeTreeFilter/flare/vis/operator/filter/GraphDistanceFilter/flare/vis/operator/filter/VisibilityFilter/flare/vis/operator/label/Labeler/flare/vis/operator/label/RadialLabeler/flare/vis/operator/label/StackedAreaLabeler/flare/vis/operator/layout/AxisLayout/flare/vis/operator/layout/BundledEdgeRouter/flare/vis/operator/layout/CircleLayout/flare/vis/operator/layout/CirclePackingLayout/flare/vis/operator/layout/DendrogramLayout/flare/vis/operator/layout/ForceDirectedLayout/flare/vis/operator/layout/IcicleTreeLayout/flare/vis/operator/layout/IndentedTreeLayout/flare/vis/operator/layout/Layout/flare/vis/operator/layout/NodeLinkTreeLayout/flare/vis/operator/layout/PieLayout/flare/vis/operator/layout/RadialTreeLayout/flare/vis/operator/layout/RandomLayout/flare/vis/operator/layout/StackedAreaLayout/flare/vis/operator/layout/TreeMapLayoutDirtySprite/flare/display/DirtySpriteLineSprite/flare/display/LineSpriteRectSprite/flare/display/RectSpriteTextSprite/flare/display/TextSpriteFlareVis/flare/flex/FlareVisDragForce/flare/physics/DragForceGravityForce/flare/physics/GravityForceIForce/flare/physics/IForceNBodyForce/flare/physics/NBodyForceParticle/flare/physics/ParticleSimulation/flare/physics/SimulationSpring/flare/physics/SpringSpringForce/flare/physics/SpringForceIScaleMap/flare/scale/IScaleMapLinearScale/flare/scale/LinearScaleLogScale/flare/scale/LogScaleOrdinalScale/flare/scale/OrdinalScaleQuantileScale/flare/scale/QuantileScaleQuantitativeScale/flare/scale/QuantitativeScaleRootScale/flare/scale/RootScaleScale/flare/scale/ScaleScaleType/flare/scale/ScaleTypeTimeScale/flare/scale/TimeScaleEasing/flare/animate/EasingFunctionSequence/flare/animate/FunctionSequenceISchedulable/flare/animate/ISchedulableParallel/flare/animate/ParallelPause/flare/animate/PauseScheduler/flare/animate/SchedulerSequence/flare/animate/SequenceTransition/flare/animate/TransitionTransitioner/flare/animate/TransitionerTransitionEvent/flare/animate/TransitionEventTween/flare/animate/TweenDataField/flare/data/DataFieldDataSchema/flare/data/DataSchemaDataSet/flare/data/DataSetDataSource/flare/data/DataSourceDataTable/flare/data/DataTableDataUtil/flare/data/DataUtilAggregateExpression/flare/query/AggregateExpressionAnd/flare/query/AndArithmetic/flare/query/ArithmeticAverage/flare/query/AverageBinaryExpression/flare/query/BinaryExpressionComparison/flare/query/ComparisonCompositeExpression/flare/query/CompositeExpressionCount/flare/query/CountDateUtil/flare/query/DateUtilDistinct/flare/query/DistinctExpression/flare/query/ExpressionExpressionIterator/flare/query/ExpressionIteratorFn/flare/query/FnIf/flare/query/IfIsA/flare/query/IsALiteral/flare/query/LiteralMatch/flare/query/MatchMaximum/flare/query/MaximumMinimum/flare/query/MinimumNot/flare/query/NotOr/flare/query/OrQuery/flare/query/QueryRange/flare/query/RangeStringUtil/flare/query/StringUtilSum/flare/query/SumVariable/flare/query/VariableVariance/flare/query/VarianceXor/flare/query/XorArrays/flare/util/ArraysColors/flare/util/ColorsDates/flare/util/DatesDisplays/flare/util/DisplaysFilter/flare/util/FilterGeometry/flare/util/GeometryIEvaluable/flare/util/IEvaluableIPredicate/flare/util/IPredicateIValueProxy/flare/util/IValueProxyMaths/flare/util/MathsOrientation/flare/util/OrientationProperty/flare/util/PropertyShapes/flare/util/ShapesSort/flare/util/SortStats/flare/util/StatsStrings/flare/util/StringsVisualization/flare/vis/VisualizationAgglomerativeCluster/flare/analytics/cluster/AgglomerativeClusterCommunityStructure/flare/analytics/cluster/CommunityStructureHierarchicalCluster/flare/analytics/cluster/HierarchicalClusterMergeEdge/flare/analytics/cluster/MergeEdgeBetweennessCentrality/flare/analytics/graph/BetweennessCentralityLinkDistance/flare/analytics/graph/LinkDistanceMaxFlowMinCut/flare/analytics/graph/MaxFlowMinCutShortestPaths/flare/analytics/graph/ShortestPathsSpanningTree/flare/analytics/graph/SpanningTreeAspectRatioBanker/flare/analytics/optimization/AspectRatioBankerArrayInterpolator/flare/animate/interpolate/ArrayInterpolatorColorInterpolator/flare/animate/interpolate/ColorInterpolatorDateInterpolator/flare/animate/interpolate/DateInterpolatorInterpolator/flare/animate/interpolate/InterpolatorMatrixInterpolator/flare/animate/interpolate/MatrixInterpolatorNumberInterpolator/flare/animate/interpolate/NumberInterpolatorObjectInterpolator/flare/animate/interpolate/ObjectInterpolatorPointInterpolator/flare/animate/interpolate/PointInterpolatorRectangleInterpolator/flare/animate/interpolate/RectangleInterpolatorConverters/flare/data/converters/ConvertersDelimitedTextConverter/flare/data/converters/DelimitedTextConverterGraphMLConverter/flare/data/converters/GraphMLConverterIDataConverter/flare/data/converters/IDataConverterJSONConverter/flare/data/converters/JSONConverteradd/flare/query/methods/addand/flare/query/methods/andaverage/flare/query/methods/averagecount/flare/query/methods/countdistinct/flare/query/methods/distinctdiv/flare/query/methods/diveq/flare/query/methods/eqfn/flare/query/methods/fngt/flare/query/methods/gtgte/flare/query/methods/gteiff/flare/query/methods/iffisa/flare/query/methods/isalt/flare/query/methods/ltlte/flare/query/methods/ltemax/flare/query/methods/maxmin/flare/query/methods/minmod/flare/query/methods/modmul/flare/query/methods/mulneq/flare/query/methods/neqnot/flare/query/methods/notor/flare/query/methods/ororderby/flare/query/methods/orderbyrange/flare/query/methods/rangeselect/flare/query/methods/selectstddev/flare/query/methods/stddevsub/flare/query/methods/subsum/flare/query/methods/sumupdate/flare/query/methods/updatevariance/flare/query/methods/variancewhere/flare/query/methods/wherexor/flare/query/methods/xor_/flare/query/methods/_FibonacciHeap/flare/util/heap/FibonacciHeapHeapNode/flare/util/heap/HeapNodeDenseMatrix/flare/util/math/DenseMatrixIMatrix/flare/util/math/IMatrixSparseMatrix/flare/util/math/SparseMatrixColorPalette/flare/util/palette/ColorPalettePalette/flare/util/palette/PaletteShapePalette/flare/util/palette/ShapePaletteSizePalette/flare/util/palette/SizePaletteAxes/flare/vis/axis/AxesAxis/flare/vis/axis/AxisAxisGridLine/flare/vis/axis/AxisGridLineAxisLabel/flare/vis/axis/AxisLabelCartesianAxes/flare/vis/axis/CartesianAxesAnchorControl/flare/vis/controls/AnchorControlClickControl/flare/vis/controls/ClickControlControl/flare/vis/controls/ControlControlList/flare/vis/controls/ControlListDragControl/flare/vis/controls/DragControlExpandControl/flare/vis/controls/ExpandControlHoverControl/flare/vis/controls/HoverControlIControl/flare/vis/controls/IControlPanZoomControl/flare/vis/controls/PanZoomControlSelectionControl/flare/vis/controls/SelectionControlTooltipControl/flare/vis/controls/TooltipControlDataEvent/flare/vis/events/DataEventSelectionEvent/flare/vis/events/SelectionEventTooltipEvent/flare/vis/events/TooltipEventVisualizationEvent/flare/vis/events/VisualizationEventLegend/flare/vis/legend/LegendLegendItem/flare/vis/legend/LegendItemLegendRange/flare/vis/legend/LegendRangeData/flare/vis/data/DataDataList/flare/vis/data/DataListDataSprite/flare/vis/data/DataSpriteEdgeSprite/flare/vis/data/EdgeSpriteNodeSprite/flare/vis/data/NodeSpriteScaleBinding/flare/vis/data/ScaleBindingTree/flare/vis/data/TreeTreeBuilder/flare/vis/data/TreeBuilderIOperator/flare/vis/operator/IOperatorOperator/flare/vis/operator/OperatorOperatorList/flare/vis/operator/OperatorListOperatorSequence/flare/vis/operator/OperatorSequenceOperatorSwitch/flare/vis/operator/OperatorSwitchSortOperator/flare/vis/operator/SortOperatorArrowType/flare/vis/data/render/ArrowTypeEdgeRenderer/flare/vis/data/render/EdgeRendererIRenderer/flare/vis/data/render/IRendererShapeRenderer/flare/vis/data/render/ShapeRendererBifocalDistortion/flare/vis/operator/distortion/BifocalDistortionDistortion/flare/vis/operator/distortion/DistortionFisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortionColorEncoder/flare/vis/operator/encoder/ColorEncoderEncoder/flare/vis/operator/encoder/EncoderPropertyEncoder/flare/vis/operator/encoder/PropertyEncoderShapeEncoder/flare/vis/operator/encoder/ShapeEncoderSizeEncoder/flare/vis/operator/encoder/SizeEncoderFisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilterGraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilterVisibilityFilter/flare/vis/operator/filter/VisibilityFilterLabeler/flare/vis/operator/label/LabelerRadialLabeler/flare/vis/operator/label/RadialLabelerStackedAreaLabeler/flare/vis/operator/label/StackedAreaLabelerAxisLayout/flare/vis/operator/layout/AxisLayoutBundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouterCircleLayout/flare/vis/operator/layout/CircleLayoutCirclePackingLayout/flare/vis/operator/layout/CirclePackingLayoutDendrogramLayout/flare/vis/operator/layout/DendrogramLayoutForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayoutIcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayoutIndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayoutLayout/flare/vis/operator/layout/LayoutNodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayoutPieLayout/flare/vis/operator/layout/PieLayoutRadialTreeLayout/flare/vis/operator/layout/RadialTreeLayoutRandomLayout/flare/vis/operator/layout/RandomLayoutStackedAreaLayout/flare/vis/operator/layout/StackedAreaLayoutTreeMapLayout/flare/vis/operator/layout/TreeMapLayoutflare/flaredisplay/flare/displayflex/flare/flexphysics/flare/physicsscale/flare/scaleanalytics/flare/analyticsanimate/flare/animatedata/flare/dataquery/flare/queryutil/flare/utilvis/flare/viscluster/flare/analytics/clustergraph/flare/analytics/graphoptimization/flare/analytics/optimizationinterpolate/flare/animate/interpolateconverters/flare/data/convertersmethods/flare/query/methodsheap/flare/util/heapmath/flare/util/mathpalette/flare/util/paletteaxis/flare/vis/axiscontrols/flare/vis/controlsevents/flare/vis/eventslegend/flare/vis/legenddata/flare/vis/dataoperator/flare/vis/operatorrender/flare/vis/data/renderdistortion/flare/vis/operator/distortionencoder/flare/vis/operator/encoderfilter/flare/vis/operator/filterlabel/flare/vis/operator/labellayout/flare/vis/operator/layoutFork
js
Plot.plot({
  axis: null,
  margin: 10,
  marginLeft: 30,
  marginRight: 160,
  width: 688,
  height: 2400,
  marks: [
    Plot.cluster(flare, {path: "name", treeSort: "node:height", delimiter: ".", textStroke: "white"})
  ]
})

Here is an example of a custom treeLayout implementation, assigning node.x and node.y.

js
function indent() {
  return (root) => {
    root.eachBefore((node, i) => {
      node.y = node.depth;
      node.x = i;
    });
  };
}

This produces an indented tree layout.

/flare/flare/analytics/flare/animate/flare/data/flare/display/flare/flex/flare/physics/flare/query/flare/scale/flare/util/flare/vis/flare/analytics/cluster/flare/analytics/graph/flare/analytics/optimization/flare/animate/Easing/flare/animate/FunctionSequence/flare/animate/interpolate/flare/animate/ISchedulable/flare/animate/Parallel/flare/animate/Pause/flare/animate/Scheduler/flare/animate/Sequence/flare/animate/Transition/flare/animate/Transitioner/flare/animate/TransitionEvent/flare/animate/Tween/flare/data/converters/flare/data/DataField/flare/data/DataSchema/flare/data/DataSet/flare/data/DataSource/flare/data/DataTable/flare/data/DataUtil/flare/display/DirtySprite/flare/display/LineSprite/flare/display/RectSprite/flare/display/TextSprite/flare/flex/FlareVis/flare/physics/DragForce/flare/physics/GravityForce/flare/physics/IForce/flare/physics/NBodyForce/flare/physics/Particle/flare/physics/Simulation/flare/physics/Spring/flare/physics/SpringForce/flare/query/AggregateExpression/flare/query/And/flare/query/Arithmetic/flare/query/Average/flare/query/BinaryExpression/flare/query/Comparison/flare/query/CompositeExpression/flare/query/Count/flare/query/DateUtil/flare/query/Distinct/flare/query/Expression/flare/query/ExpressionIterator/flare/query/Fn/flare/query/If/flare/query/IsA/flare/query/Literal/flare/query/Match/flare/query/Maximum/flare/query/methods/flare/query/Minimum/flare/query/Not/flare/query/Or/flare/query/Query/flare/query/Range/flare/query/StringUtil/flare/query/Sum/flare/query/Variable/flare/query/Variance/flare/query/Xor/flare/scale/IScaleMap/flare/scale/LinearScale/flare/scale/LogScale/flare/scale/OrdinalScale/flare/scale/QuantileScale/flare/scale/QuantitativeScale/flare/scale/RootScale/flare/scale/Scale/flare/scale/ScaleType/flare/scale/TimeScale/flare/util/Arrays/flare/util/Colors/flare/util/Dates/flare/util/Displays/flare/util/Filter/flare/util/Geometry/flare/util/heap/flare/util/IEvaluable/flare/util/IPredicate/flare/util/IValueProxy/flare/util/math/flare/util/Maths/flare/util/Orientation/flare/util/palette/flare/util/Property/flare/util/Shapes/flare/util/Sort/flare/util/Stats/flare/util/Strings/flare/vis/axis/flare/vis/controls/flare/vis/data/flare/vis/events/flare/vis/legend/flare/vis/operator/flare/vis/Visualization/flare/analytics/cluster/AgglomerativeCluster/flare/analytics/cluster/CommunityStructure/flare/analytics/cluster/HierarchicalCluster/flare/analytics/cluster/MergeEdge/flare/analytics/graph/BetweennessCentrality/flare/analytics/graph/LinkDistance/flare/analytics/graph/MaxFlowMinCut/flare/analytics/graph/ShortestPaths/flare/analytics/graph/SpanningTree/flare/analytics/optimization/AspectRatioBanker/flare/animate/interpolate/ArrayInterpolator/flare/animate/interpolate/ColorInterpolator/flare/animate/interpolate/DateInterpolator/flare/animate/interpolate/Interpolator/flare/animate/interpolate/MatrixInterpolator/flare/animate/interpolate/NumberInterpolator/flare/animate/interpolate/ObjectInterpolator/flare/animate/interpolate/PointInterpolator/flare/animate/interpolate/RectangleInterpolator/flare/data/converters/Converters/flare/data/converters/DelimitedTextConverter/flare/data/converters/GraphMLConverter/flare/data/converters/IDataConverter/flare/data/converters/JSONConverter/flare/query/methods/add/flare/query/methods/and/flare/query/methods/average/flare/query/methods/count/flare/query/methods/distinct/flare/query/methods/div/flare/query/methods/eq/flare/query/methods/fn/flare/query/methods/gt/flare/query/methods/gte/flare/query/methods/iff/flare/query/methods/isa/flare/query/methods/lt/flare/query/methods/lte/flare/query/methods/max/flare/query/methods/min/flare/query/methods/mod/flare/query/methods/mul/flare/query/methods/neq/flare/query/methods/not/flare/query/methods/or/flare/query/methods/orderby/flare/query/methods/range/flare/query/methods/select/flare/query/methods/stddev/flare/query/methods/sub/flare/query/methods/sum/flare/query/methods/update/flare/query/methods/variance/flare/query/methods/where/flare/query/methods/xor/flare/query/methods/_/flare/util/heap/FibonacciHeap/flare/util/heap/HeapNode/flare/util/math/DenseMatrix/flare/util/math/IMatrix/flare/util/math/SparseMatrix/flare/util/palette/ColorPalette/flare/util/palette/Palette/flare/util/palette/ShapePalette/flare/util/palette/SizePalette/flare/vis/axis/Axes/flare/vis/axis/Axis/flare/vis/axis/AxisGridLine/flare/vis/axis/AxisLabel/flare/vis/axis/CartesianAxes/flare/vis/controls/AnchorControl/flare/vis/controls/ClickControl/flare/vis/controls/Control/flare/vis/controls/ControlList/flare/vis/controls/DragControl/flare/vis/controls/ExpandControl/flare/vis/controls/HoverControl/flare/vis/controls/IControl/flare/vis/controls/PanZoomControl/flare/vis/controls/SelectionControl/flare/vis/controls/TooltipControl/flare/vis/data/Data/flare/vis/data/DataList/flare/vis/data/DataSprite/flare/vis/data/EdgeSprite/flare/vis/data/NodeSprite/flare/vis/data/render/flare/vis/data/ScaleBinding/flare/vis/data/Tree/flare/vis/data/TreeBuilder/flare/vis/events/DataEvent/flare/vis/events/SelectionEvent/flare/vis/events/TooltipEvent/flare/vis/events/VisualizationEvent/flare/vis/legend/Legend/flare/vis/legend/LegendItem/flare/vis/legend/LegendRange/flare/vis/operator/distortion/flare/vis/operator/encoder/flare/vis/operator/filter/flare/vis/operator/IOperator/flare/vis/operator/label/flare/vis/operator/layout/flare/vis/operator/Operator/flare/vis/operator/OperatorList/flare/vis/operator/OperatorSequence/flare/vis/operator/OperatorSwitch/flare/vis/operator/SortOperator/flare/vis/data/render/ArrowType/flare/vis/data/render/EdgeRenderer/flare/vis/data/render/IRenderer/flare/vis/data/render/ShapeRenderer/flare/vis/operator/distortion/BifocalDistortion/flare/vis/operator/distortion/Distortion/flare/vis/operator/distortion/FisheyeDistortion/flare/vis/operator/encoder/ColorEncoder/flare/vis/operator/encoder/Encoder/flare/vis/operator/encoder/PropertyEncoder/flare/vis/operator/encoder/ShapeEncoder/flare/vis/operator/encoder/SizeEncoder/flare/vis/operator/filter/FisheyeTreeFilter/flare/vis/operator/filter/GraphDistanceFilter/flare/vis/operator/filter/VisibilityFilter/flare/vis/operator/label/Labeler/flare/vis/operator/label/RadialLabeler/flare/vis/operator/label/StackedAreaLabeler/flare/vis/operator/layout/AxisLayout/flare/vis/operator/layout/BundledEdgeRouter/flare/vis/operator/layout/CircleLayout/flare/vis/operator/layout/CirclePackingLayout/flare/vis/operator/layout/DendrogramLayout/flare/vis/operator/layout/ForceDirectedLayout/flare/vis/operator/layout/IcicleTreeLayout/flare/vis/operator/layout/IndentedTreeLayout/flare/vis/operator/layout/Layout/flare/vis/operator/layout/NodeLinkTreeLayout/flare/vis/operator/layout/PieLayout/flare/vis/operator/layout/RadialTreeLayout/flare/vis/operator/layout/RandomLayout/flare/vis/operator/layout/StackedAreaLayout/flare/vis/operator/layout/TreeMapLayoutflare/flareanalytics/flare/analyticsanimate/flare/animatedata/flare/datadisplay/flare/displayflex/flare/flexphysics/flare/physicsquery/flare/queryscale/flare/scaleutil/flare/utilvis/flare/viscluster/flare/analytics/clustergraph/flare/analytics/graphoptimization/flare/analytics/optimizationEasing/flare/animate/EasingFunctionSequence/flare/animate/FunctionSequenceinterpolate/flare/animate/interpolateISchedulable/flare/animate/ISchedulableParallel/flare/animate/ParallelPause/flare/animate/PauseScheduler/flare/animate/SchedulerSequence/flare/animate/SequenceTransition/flare/animate/TransitionTransitioner/flare/animate/TransitionerTransitionEvent/flare/animate/TransitionEventTween/flare/animate/Tweenconverters/flare/data/convertersDataField/flare/data/DataFieldDataSchema/flare/data/DataSchemaDataSet/flare/data/DataSetDataSource/flare/data/DataSourceDataTable/flare/data/DataTableDataUtil/flare/data/DataUtilDirtySprite/flare/display/DirtySpriteLineSprite/flare/display/LineSpriteRectSprite/flare/display/RectSpriteTextSprite/flare/display/TextSpriteFlareVis/flare/flex/FlareVisDragForce/flare/physics/DragForceGravityForce/flare/physics/GravityForceIForce/flare/physics/IForceNBodyForce/flare/physics/NBodyForceParticle/flare/physics/ParticleSimulation/flare/physics/SimulationSpring/flare/physics/SpringSpringForce/flare/physics/SpringForceAggregateExpression/flare/query/AggregateExpressionAnd/flare/query/AndArithmetic/flare/query/ArithmeticAverage/flare/query/AverageBinaryExpression/flare/query/BinaryExpressionComparison/flare/query/ComparisonCompositeExpression/flare/query/CompositeExpressionCount/flare/query/CountDateUtil/flare/query/DateUtilDistinct/flare/query/DistinctExpression/flare/query/ExpressionExpressionIterator/flare/query/ExpressionIteratorFn/flare/query/FnIf/flare/query/IfIsA/flare/query/IsALiteral/flare/query/LiteralMatch/flare/query/MatchMaximum/flare/query/Maximummethods/flare/query/methodsMinimum/flare/query/MinimumNot/flare/query/NotOr/flare/query/OrQuery/flare/query/QueryRange/flare/query/RangeStringUtil/flare/query/StringUtilSum/flare/query/SumVariable/flare/query/VariableVariance/flare/query/VarianceXor/flare/query/XorIScaleMap/flare/scale/IScaleMapLinearScale/flare/scale/LinearScaleLogScale/flare/scale/LogScaleOrdinalScale/flare/scale/OrdinalScaleQuantileScale/flare/scale/QuantileScaleQuantitativeScale/flare/scale/QuantitativeScaleRootScale/flare/scale/RootScaleScale/flare/scale/ScaleScaleType/flare/scale/ScaleTypeTimeScale/flare/scale/TimeScaleArrays/flare/util/ArraysColors/flare/util/ColorsDates/flare/util/DatesDisplays/flare/util/DisplaysFilter/flare/util/FilterGeometry/flare/util/Geometryheap/flare/util/heapIEvaluable/flare/util/IEvaluableIPredicate/flare/util/IPredicateIValueProxy/flare/util/IValueProxymath/flare/util/mathMaths/flare/util/MathsOrientation/flare/util/Orientationpalette/flare/util/paletteProperty/flare/util/PropertyShapes/flare/util/ShapesSort/flare/util/SortStats/flare/util/StatsStrings/flare/util/Stringsaxis/flare/vis/axiscontrols/flare/vis/controlsdata/flare/vis/dataevents/flare/vis/eventslegend/flare/vis/legendoperator/flare/vis/operatorVisualization/flare/vis/VisualizationAgglomerativeCluster/flare/analytics/cluster/AgglomerativeClusterCommunityStructure/flare/analytics/cluster/CommunityStructureHierarchicalCluster/flare/analytics/cluster/HierarchicalClusterMergeEdge/flare/analytics/cluster/MergeEdgeBetweennessCentrality/flare/analytics/graph/BetweennessCentralityLinkDistance/flare/analytics/graph/LinkDistanceMaxFlowMinCut/flare/analytics/graph/MaxFlowMinCutShortestPaths/flare/analytics/graph/ShortestPathsSpanningTree/flare/analytics/graph/SpanningTreeAspectRatioBanker/flare/analytics/optimization/AspectRatioBankerArrayInterpolator/flare/animate/interpolate/ArrayInterpolatorColorInterpolator/flare/animate/interpolate/ColorInterpolatorDateInterpolator/flare/animate/interpolate/DateInterpolatorInterpolator/flare/animate/interpolate/InterpolatorMatrixInterpolator/flare/animate/interpolate/MatrixInterpolatorNumberInterpolator/flare/animate/interpolate/NumberInterpolatorObjectInterpolator/flare/animate/interpolate/ObjectInterpolatorPointInterpolator/flare/animate/interpolate/PointInterpolatorRectangleInterpolator/flare/animate/interpolate/RectangleInterpolatorConverters/flare/data/converters/ConvertersDelimitedTextConverter/flare/data/converters/DelimitedTextConverterGraphMLConverter/flare/data/converters/GraphMLConverterIDataConverter/flare/data/converters/IDataConverterJSONConverter/flare/data/converters/JSONConverteradd/flare/query/methods/addand/flare/query/methods/andaverage/flare/query/methods/averagecount/flare/query/methods/countdistinct/flare/query/methods/distinctdiv/flare/query/methods/diveq/flare/query/methods/eqfn/flare/query/methods/fngt/flare/query/methods/gtgte/flare/query/methods/gteiff/flare/query/methods/iffisa/flare/query/methods/isalt/flare/query/methods/ltlte/flare/query/methods/ltemax/flare/query/methods/maxmin/flare/query/methods/minmod/flare/query/methods/modmul/flare/query/methods/mulneq/flare/query/methods/neqnot/flare/query/methods/notor/flare/query/methods/ororderby/flare/query/methods/orderbyrange/flare/query/methods/rangeselect/flare/query/methods/selectstddev/flare/query/methods/stddevsub/flare/query/methods/subsum/flare/query/methods/sumupdate/flare/query/methods/updatevariance/flare/query/methods/variancewhere/flare/query/methods/wherexor/flare/query/methods/xor_/flare/query/methods/_FibonacciHeap/flare/util/heap/FibonacciHeapHeapNode/flare/util/heap/HeapNodeDenseMatrix/flare/util/math/DenseMatrixIMatrix/flare/util/math/IMatrixSparseMatrix/flare/util/math/SparseMatrixColorPalette/flare/util/palette/ColorPalettePalette/flare/util/palette/PaletteShapePalette/flare/util/palette/ShapePaletteSizePalette/flare/util/palette/SizePaletteAxes/flare/vis/axis/AxesAxis/flare/vis/axis/AxisAxisGridLine/flare/vis/axis/AxisGridLineAxisLabel/flare/vis/axis/AxisLabelCartesianAxes/flare/vis/axis/CartesianAxesAnchorControl/flare/vis/controls/AnchorControlClickControl/flare/vis/controls/ClickControlControl/flare/vis/controls/ControlControlList/flare/vis/controls/ControlListDragControl/flare/vis/controls/DragControlExpandControl/flare/vis/controls/ExpandControlHoverControl/flare/vis/controls/HoverControlIControl/flare/vis/controls/IControlPanZoomControl/flare/vis/controls/PanZoomControlSelectionControl/flare/vis/controls/SelectionControlTooltipControl/flare/vis/controls/TooltipControlData/flare/vis/data/DataDataList/flare/vis/data/DataListDataSprite/flare/vis/data/DataSpriteEdgeSprite/flare/vis/data/EdgeSpriteNodeSprite/flare/vis/data/NodeSpriterender/flare/vis/data/renderScaleBinding/flare/vis/data/ScaleBindingTree/flare/vis/data/TreeTreeBuilder/flare/vis/data/TreeBuilderDataEvent/flare/vis/events/DataEventSelectionEvent/flare/vis/events/SelectionEventTooltipEvent/flare/vis/events/TooltipEventVisualizationEvent/flare/vis/events/VisualizationEventLegend/flare/vis/legend/LegendLegendItem/flare/vis/legend/LegendItemLegendRange/flare/vis/legend/LegendRangedistortion/flare/vis/operator/distortionencoder/flare/vis/operator/encoderfilter/flare/vis/operator/filterIOperator/flare/vis/operator/IOperatorlabel/flare/vis/operator/labellayout/flare/vis/operator/layoutOperator/flare/vis/operator/OperatorOperatorList/flare/vis/operator/OperatorListOperatorSequence/flare/vis/operator/OperatorSequenceOperatorSwitch/flare/vis/operator/OperatorSwitchSortOperator/flare/vis/operator/SortOperatorArrowType/flare/vis/data/render/ArrowTypeEdgeRenderer/flare/vis/data/render/EdgeRendererIRenderer/flare/vis/data/render/IRendererShapeRenderer/flare/vis/data/render/ShapeRendererBifocalDistortion/flare/vis/operator/distortion/BifocalDistortionDistortion/flare/vis/operator/distortion/DistortionFisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortionColorEncoder/flare/vis/operator/encoder/ColorEncoderEncoder/flare/vis/operator/encoder/EncoderPropertyEncoder/flare/vis/operator/encoder/PropertyEncoderShapeEncoder/flare/vis/operator/encoder/ShapeEncoderSizeEncoder/flare/vis/operator/encoder/SizeEncoderFisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilterGraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilterVisibilityFilter/flare/vis/operator/filter/VisibilityFilterLabeler/flare/vis/operator/label/LabelerRadialLabeler/flare/vis/operator/label/RadialLabelerStackedAreaLabeler/flare/vis/operator/label/StackedAreaLabelerAxisLayout/flare/vis/operator/layout/AxisLayoutBundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouterCircleLayout/flare/vis/operator/layout/CircleLayoutCirclePackingLayout/flare/vis/operator/layout/CirclePackingLayoutDendrogramLayout/flare/vis/operator/layout/DendrogramLayoutForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayoutIcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayoutIndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayoutLayout/flare/vis/operator/layout/LayoutNodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayoutPieLayout/flare/vis/operator/layout/PieLayoutRadialTreeLayout/flare/vis/operator/layout/RadialTreeLayoutRandomLayout/flare/vis/operator/layout/RandomLayoutStackedAreaLayout/flare/vis/operator/layout/StackedAreaLayoutTreeMapLayout/flare/vis/operator/layout/TreeMapLayoutFork
js
Plot.plot({
  axis: null,
  inset: 10,
  insetRight: 120,
  round: true,
  width: 200,
  height: 3600,
  marks: Plot.tree(flare, {
    path: "name",
    delimiter: ".",
    treeLayout: indent,
    strokeWidth: 1,
    curve: "step-before",
    textStroke: "none"
  })
})

The tree mark currently does not inform the default layout; you may find it necessary to set the height and margin layout options for readability.

Tree options

The following options are supported:

  • fill - the dot and text fill color; defaults to node:internal
  • stroke - the link stroke color; inherits fill by default
  • strokeWidth - the link stroke width
  • strokeOpacity - the link stroke opacity
  • strokeLinejoin - the link stroke linejoin
  • strokeLinecap - the link stroke linecap
  • strokeMiterlimit - the link stroke miter limit
  • strokeDasharray - the link stroke dash array
  • strokeDashoffset - the link stroke dash offset
  • marker - the link start and end marker
  • markerStart - the link start marker
  • markerEnd - the link end marker
  • dot - if true, whether to render a dot; defaults to false if no link marker
  • title - the text and dot title; defaults to node:path
  • text - the text label; defaults to node:name
  • textStroke - the text stroke; defaults to white
  • textLayout - the text anchoring layout
  • dx - the text horizontal offset; defaults to 6
  • dy - the text vertical offset; defaults to 0

Any additional options are passed through to the constituent link, dot, and text marks and their corresponding treeLink or treeNode transform.

The textLayout option ^0.6.9 controls how text labels are anchored to the node. Two layouts are supported:

  • mirrored - leaf-node labels are left-anchored, and non-leaf nodes right-anchored
  • normal - all labels are left-anchored

If the treeLayout is d3.tree or d3.cluster, the textLayout defaults to mirrored; otherwise it defaults to normal.

tree(data, options)

js
Plot.tree(flare, {path: "name", delimiter: "."})

Returns a new tree mark with the given data and options.

cluster(data, options)

js
Plot.cluster(flare, {path: "name", delimiter: "."})

Like tree, except sets the treeLayout option to d3.cluster, aligning leaf nodes, and defaults the textLayout option to mirrored.