Tufte Cancer Survival

Faceted slopegraph reproduction of Edward Tufte/Dave Nash cancer survival-rate table graphics.

Tufte Cancer Survival
Tufte Cancer Survival Pipeline pipeline

Data Sources

9

Fields

44

Scales

0

Layers

17

Glyphs

273

rect 9 / line 20 / text 147 / path 1 / point 96

chart-backgroundRectum, 5-year relative survival: 63%Larynx, 5-year relative survival: 69%Prostate, 5-year relative survival: 99%Thyroid, 5-year relative survival: 96%DigestiveDigestiveRespiratoryRespiratoryReproductiveReproductiveOtherOther55101015152020551010151520205510101515202055101015152020year-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesyear-tick-rulesRectum, 5-year relative survival: 63%635552496255545257443833241919151488586684333695746381511869995878195949188867871658483817971646360554950509696949589878483858074678276706862545047584638344332302632292826301375RectumRectumColonColonOral cavityOral cavitypharynxpharynxStomachStomachEsophagusEsophagusLiver,Liver,bile ductbile ductPancreasPancreasLarynxLarynxLung andLung andbronchusbronchusProstateProstateTestisTestisBreastBreastCorpus uteri,Corpus uteri,uterusuterusCervix,uteriCervix,uteriOvaryOvaryThyroidThyroidMelanomasMelanomasHodgkin'sHodgkin'sdiseasediseaseUrinary, bladderUrinary, bladderKidney,Kidney,renal pelvisrenal pelvisNon-Hodgkin'sNon-Hodgkin'sLeukemiaLeukemiaBrain,Brain,nervous systemnervous systemMultiple myelomaMultiple myelomarectum rectum-5-yearrectum rectum-10-yearrectum rectum-15-yearrectum rectum-20-yearcolon colon-5-yearcolon colon-10-yearcolon colon-15-yearcolon colon-20-yearoral-cavity-pharynx oral-cavity-pharynx-5-yearoral-cavity-pharynx oral-cavity-pharynx-10-yearoral-cavity-pharynx oral-cavity-pharynx-15-yearoral-cavity-pharynx oral-cavity-pharynx-20-yearstomach stomach-5-yearstomach stomach-10-yearstomach stomach-15-yearstomach stomach-20-yearesophagus esophagus-5-yearesophagus esophagus-10-yearesophagus esophagus-15-yearesophagus esophagus-20-yearliver-bile-duct liver-bile-duct-5-yearliver-bile-duct liver-bile-duct-10-yearliver-bile-duct liver-bile-duct-15-yearliver-bile-duct liver-bile-duct-20-yearpancreas pancreas-5-yearpancreas pancreas-10-yearpancreas pancreas-15-yearpancreas pancreas-20-yearlarynx larynx-5-yearlarynx larynx-10-yearlarynx larynx-15-yearlarynx larynx-20-yearlung-and-bronchus lung-and-bronchus-5-yearlung-and-bronchus lung-and-bronchus-10-yearlung-and-bronchus lung-and-bronchus-15-yearlung-and-bronchus lung-and-bronchus-20-yearprostate prostate-5-yearprostate prostate-10-yearprostate prostate-15-yearprostate prostate-20-yeartestis testis-5-yeartestis testis-10-yeartestis testis-15-yeartestis testis-20-yearbreast breast-5-yearbreast breast-10-yearbreast breast-15-yearbreast breast-20-yearcorpus-uteri-uterus corpus-uteri-uterus-5-yearcorpus-uteri-uterus corpus-uteri-uterus-10-yearcorpus-uteri-uterus corpus-uteri-uterus-15-yearcorpus-uteri-uterus corpus-uteri-uterus-20-yearcervix-uteri cervix-uteri-5-yearcervix-uteri cervix-uteri-10-yearcervix-uteri cervix-uteri-15-yearcervix-uteri cervix-uteri-20-yearovary ovary-5-yearovary ovary-10-yearovary ovary-15-yearovary ovary-20-yearthyroid thyroid-5-yearthyroid thyroid-10-yearthyroid thyroid-15-yearthyroid thyroid-20-yearmelanomas melanomas-5-yearmelanomas melanomas-10-yearmelanomas melanomas-15-yearmelanomas melanomas-20-yearhodgkin-s-disease hodgkin-s-disease-5-yearhodgkin-s-disease hodgkin-s-disease-10-yearhodgkin-s-disease hodgkin-s-disease-15-yearhodgkin-s-disease hodgkin-s-disease-20-yearurinary-bladder urinary-bladder-5-yearurinary-bladder urinary-bladder-10-yearurinary-bladder urinary-bladder-15-yearurinary-bladder urinary-bladder-20-yearkidney-renal-pelvis kidney-renal-pelvis-5-yearkidney-renal-pelvis kidney-renal-pelvis-10-yearkidney-renal-pelvis kidney-renal-pelvis-15-yearkidney-renal-pelvis kidney-renal-pelvis-20-yearnon-hodgkin-s non-hodgkin-s-5-yearnon-hodgkin-s non-hodgkin-s-10-yearnon-hodgkin-s non-hodgkin-s-15-yearnon-hodgkin-s non-hodgkin-s-20-yearleukemia leukemia-5-yearleukemia leukemia-10-yearleukemia leukemia-15-yearleukemia leukemia-20-yearbrain-nervous-system brain-nervous-system-5-yearbrain-nervous-system brain-nervous-system-10-yearbrain-nervous-system brain-nervous-system-15-yearbrain-nervous-system brain-nervous-system-20-yearmultiple-myeloma multiple-myeloma-5-yearmultiple-myeloma multiple-myeloma-10-yearmultiple-myeloma multiple-myeloma-15-yearmultiple-myeloma multiple-myeloma-20-year

Build Path

Tufte Cancer Survival Pipeline

This example is rebuilt from gallery data source survival-table by recipe tufteCancerSurvival: raw table rows -> TabularSource -> pipeline drafts -> analyzeAuthoringDrafts() -> materialized ChartSpec -> compileChart() -> SceneGraph -> SVG. The graph below shows the authored pipeline stage.

Pipeline recipe graph

1 pipelines
37 nodes
28 edges

Data Flow Diagram

0/2915 nodes
0/5759 edges
2915 hidden

Select a glyph to highlight its complete source path.

Scope

Roles

source
transform
field
scale
layer
param
glyph

No matching flow nodes

Adjust search, scope, or role filters.

Available Data

9 tables
4 transforms

Imported table

source_gallery_tuftecancersurvival
raw
18 columns
feeds pipeline_category_panel_layout_transform
feeds pipeline_survival_point_layout_transform

ChartSpec

{
  "id": "gallery.tufteCancerSurvival",
  "data": [
    {
      "id": "source_gallery_tuftecancersurvival",
      "rows": 96
    },
    {
      "id": "pipeline_source_and_extraction_notes_source",
      "rows": 1
    },
    {
      "id": "pipeline_cancer_label_anchors_source",
      "rows": 31
    },
    {
      "id": "pipeline_year_guide_anchors_source",
      "rows": 16
    },
    {
      "id": "pipeline_chart_background_layer_constants_source",
      "rows": 1
    },
    {
      "id": "source_category_panels",
      "rows": 4
    },
    {
      "id": "source_survival_points",
      "rows": 96
    },
    {
      "id": "source_cancer_label_points",
      "rows": 31
    },
    {
      "id": "source_year_guide_points",
      "rows": 16
    }
  ],
  "transforms": [
    {
      "id": "pipeline_category_panel_layout_transform",
      "type": "layout",
      "input": "source_gallery_tuftecancersurvival",
      "output": "source_category_panels",
      "options": {
        "errorMethod": "standardError",
        "field": "category",
        "fit": "contain",
        "geometryField": "category",
        "groupBy": [
          "category"
        ],
        "idField": "category",
        "idPrefix": "cancer-survival-panel",
        "includeMax": false,
        "labelField": "category",
        "layout": "pipeline_cancer_survival_facet_grid_layout",
        "layoutKind": "facetPanels",
        "layoutMode": "proportionalAngle",
        "mode": "normal",
        "order": [
          "Digestive",
          "Respiratory",
          "Reproductive",
          "Other"
        ],
        "orderField": "category",
        "panelHeaderHeight": 52,
        "sourceField": "category",
        "value": "category"
      }
    },
    {
      "id": "pipeline_survival_point_layout_transform",
      "type": "layout",
      "input": "source_gallery_tuftecancersurvival",
      "output": "source_survival_points",
      "options": {
        "end": 100,
        "endField": "survival",
        "errorMethod": "standardError",
        "field": "category",
        "fit": "contain",
        "geometryField": "category",
        "groupBy": [
          "category"
        ],
        "idField": "category",
        "includeMax": false,
        "labelField": "category",
        "layout": "pipeline_cancer_survival_facet_grid_layout",
        "layoutKind": "facetPoints",
        "layoutMode": "proportionalAngle",
        "mode": "normal",
        "order": [
          "Digestive",
          "Respiratory",
          "Reproductive",
          "Other"
        ],
        "orderField": "category",
        "panelHeaderHeight": 52,
        "parentField": "year",
        "seriesBy": "year",
        "sourceField": "category",
        "start": 0,
        "startField": "year",
        "targetField": "year",
        "value": "survival",
        "xField": "year",
        "xPadding": 61,
        "yField": "survival",
        "yPadding": 8
      }
    },
    {
      "id": "pipeline_cancer_label_layout_transform",
      "type": "layout",
      "input": "pipeline_cancer_label_anchors_source",
      "output": "source_cancer_label_points",
      "options": {
        "end": 100,
        "endField": "survival",
        "errorMethod": "standardError",
        "field": "category",
        "fit": "contain",
        "geometryField": "category",
        "groupBy": [
          "category"
        ],
        "idField": "category",
        "includeMax": false,
        "labelField": "category",
        "layout": "pipeline_cancer_survival_facet_grid_layout",
        "layoutKind": "facetPoints",
        "layoutMode": "proportionalAngle",
        "mode": "normal",
        "order": [
          "Digestive",
          "Respiratory",
          "Reproductive",
          "Other"
        ],
        "orderField": "category",
        "panelHeaderHeight": 52,
        "parentField": "year",
        "seriesBy": "year",
        "sourceField": "category",
        "start": 0,
        "startField": "year",
        "targetField": "year",
        "value": "survival",
        "xField": "year",
        "xPadding": 61,
        "yField": "survival",
        "yPadding": 8
      }
    },
    {
      "id": "pipeline_year_guide_layout_transform",
      "type": "layout",
      "input": "pipeline_year_guide_anchors_source",
      "output": "source_year_guide_points",
      "options": {
        "end": 100,
        "endField": "guideValue",
        "errorMethod": "standardError",
        "field": "category",
        "fit": "contain",
        "geometryField": "category",
        "groupBy": [
          "category"
        ],
        "idField": "category",
        "includeMax": false,
        "labelField": "category",
        "layout": "pipeline_cancer_survival_facet_grid_layout",
        "layoutKind": "facetPoints",
        "layoutMode": "proportionalAngle",
        "mode": "normal",
        "order": [
          "Digestive",
          "Respiratory",
          "Reproductive",
          "Other"
        ],
        "orderField": "category",
        "panelHeaderHeight": 52,
        "parentField": "year",
        "seriesBy": "year",
        "sourceField": "category",
        "start": 0,
        "startField": "year",
        "targetField": "year",
        "value": "guideValue",
        "xField": "year",
        "xPadding": 61,
        "yField": "guideValue",
        "yPadding": 8
      }
    }
  ],
  "axes": [],
  "grids": [],
  "legends": [],
  "fields": [
    "__rowLabel",
    "cancerid",
    "id",
    "category",
    "cancer",
    "year",
    "yearindex",
    "survival",
    "valuelabel",
    "valuedx",
    "valuedy",
    "valueanchor",
    "tooltip",
    "tooltipeyebrow",
    "tooltiptitle",
    "tooltipbody",
    "tooltipaccentcolor",
    "articleUrl",
    "extractedOn",
    "sourceDataset",
    "tableGraphicUrl",
    "cancerId",
    "labelAnchor",
    "labelDx",
    "labelDy",
    "labelLine",
    "lineDy",
    "guideValue",
    "yearLabel",
    "height",
    "width",
    "x",
    "y",
    "averageLabel",
    "averageY",
    "centerX",
    "labelX",
    "labelY",
    "panelX0",
    "panelX1",
    "panelY0",
    "panelY1",
    "plotY0",
    "plotY1"
  ],
  "scales": [],
  "layers": [
    {
      "id": "create_chart_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_view_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_plot_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_cancer_survival_facet_grid_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_cancer_survival_panel_digestive_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_cancer_survival_panel_respiratory_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_cancer_survival_panel_reproductive_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_cancer_survival_panel_other_layout_surface",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_chart_background_layer",
      "mark": "rect",
      "role": "context"
    },
    {
      "id": "pipeline_facet_title_rules_layer",
      "mark": "line",
      "role": "guide"
    },
    {
      "id": "pipeline_facet_titles_layer",
      "mark": "text",
      "role": "guide"
    },
    {
      "id": "pipeline_year_labels_layer",
      "mark": "text",
      "role": "guide"
    },
    {
      "id": "pipeline_year_tick_rules_layer",
      "mark": "line",
      "role": "guide"
    },
    {
      "id": "pipeline_survival_lines_layer",
      "mark": "path",
      "role": "data",
      "path": {
        "directD": false,
        "areaBand": false,
        "closedToY": false,
        "curve": "linear",
        "groupBy": [
          "cancerId"
        ],
        "sortBy": "yearIndex"
      }
    },
    {
      "id": "pipeline_value_labels_layer",
      "mark": "text",
      "role": "data"
    },
    {
      "id": "pipeline_cancer_labels_layer",
      "mark": "text",
      "role": "data"
    },
    {
      "id": "pipeline_inspection_targets_layer",
      "mark": "point",
      "role": "interaction"
    }
  ]
}

Resolved SceneGraph

{
  "scene": "gallery.tufteCancerSurvival.scene",
  "scales": [],
  "layers": [
    {
      "id": "create_chart_surface",
      "role": "context",
      "zIndex": -10,
      "glyphs": 1
    },
    {
      "id": "pipeline_chart_background_layer",
      "role": "context",
      "zIndex": -10,
      "glyphs": 1
    },
    {
      "id": "pipeline_view_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_plot_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_cancer_survival_facet_grid_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_cancer_survival_panel_digestive_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_cancer_survival_panel_respiratory_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_cancer_survival_panel_reproductive_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_cancer_survival_panel_other_layout_surface",
      "role": "context",
      "zIndex": 0,
      "glyphs": 1
    },
    {
      "id": "pipeline_facet_title_rules_layer",
      "role": "guide",
      "zIndex": 0,
      "glyphs": 4
    },
    {
      "id": "pipeline_facet_titles_layer",
      "role": "guide",
      "zIndex": 2,
      "glyphs": 4
    },
    {
      "id": "pipeline_year_labels_layer",
      "role": "guide",
      "zIndex": 3,
      "glyphs": 16
    },
    {
      "id": "pipeline_year_tick_rules_layer",
      "role": "guide",
      "zIndex": 3,
      "glyphs": 16
    },
    {
      "id": "pipeline_survival_lines_layer",
      "role": "data",
      "zIndex": 10,
      "glyphs": 1
    },
    {
      "id": "pipeline_value_labels_layer",
      "role": "data",
      "zIndex": 20,
      "glyphs": 96
    },
    {
      "id": "pipeline_cancer_labels_layer",
      "role": "data",
      "zIndex": 30,
      "glyphs": 31
    },
    {
      "id": "pipeline_inspection_targets_layer",
      "role": "interaction",
      "zIndex": 40,
      "glyphs": 96
    }
  ]
}

Glyph Data Tree

17 layers

Full parameter lineage for the active compiler surface.

create_chart_surface

1

pipeline_chart_background_layer

1

pipeline_view_layout_surface

1

pipeline_plot_layout_surface

1

pipeline_cancer_survival_facet_grid_layout_surface

1

pipeline_cancer_survival_panel_digestive_layout_surface

1

pipeline_cancer_survival_panel_respiratory_layout_surface

1

pipeline_cancer_survival_panel_reproductive_layout_surface

1

pipeline_cancer_survival_panel_other_layout_surface

1

pipeline_facet_title_rules_layer

4

pipeline_facet_titles_layer

4

pipeline_year_labels_layer

16

pipeline_year_tick_rules_layer

16

pipeline_survival_lines_layer

1

pipeline_value_labels_layer

96

pipeline_cancer_labels_layer

31

pipeline_inspection_targets_layer

96

Glyph Inspector

none

Select a glyph in the chart to inspect resolved params and lineage.