Vega: Interactive graphs

From wikiluntti
Revision as of 15:46, 6 September 2021 by MarkkuOpe (talk | contribs) (→‎vega)

Kantasienet

<graph> {

 "width": 1024,
 "height": 150,
 "background": "#ffffff",
 "data": [
   {
     "name": "tree",
     "values": [
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Kärpässienet", "E": "Punakärpässieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Kärpässienet", "E": "Kavalakärpässieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Kärpässienet", "E": "Valkokärpässieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Herkkusienet", "E": "Peltoherkkusieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Herkkusienet", "E": "Kuusiherkkusieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Herkkusienet", "E": "Viljelyherkkusieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Rouskut", "E": "Haaparousku"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Rouskut", "E": "kangasrousku"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Rouskut", "E": "Lutikkarousku"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Haperot", "E": "Aurinkohapero"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Haperot", "E": "Isohapero"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Haperot", "E": "Pyökkihapero"  },

{"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Häränkielet", "E": "Häränkieli" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Tuhkelot", "E": "Känsätuhkelo" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Tuhkelot", "E": "Nuijakuukunen" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Tuhkelot", "E": "Kenttätuhkelo" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Kivitatit", "E": "Herkkutatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Kivitatit", "E": "Punatatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Lehmäntatit", "E": "Lehmäntatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Lehmäntatit", "E": "Koivunpunikkitatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Tylopilus", "E": "Samettitatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Voitatit", "E": "" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Voitatit", "E": "Voitatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Kantarellit", "D": "Vahverot", "E": "Keltavahvero" } , {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Kantarellit", "D": "Vahverot", "E": "Suppilovahvero" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Kantarellit", "D": "Vahverot", "E": "Mustatorvisieni" }

     ],
     "transform": [
       {
         "type": "treeify",
         "groupby": ["A","C","D"]
       },
       {
         "type": "hierarchy",
         "mode": "cluster",
         "nodesize": [20,100]
       },
       {
         "type": "formula",
         "field": "align",
         "expr": "'right'"
       },
       {
         "type": "formula",
         "field": "offset",
         "expr": "-10"
       }
     ]
   }
 ],
 "marks": [
   {
     "type": "path",
     "from": {
       "data": "tree",
       "transform": [
         {"type": "filter","test": "datum.parent"},
         {
           "type": "linkpath",
           "sourceX": "parent.layout_y",
           "sourceY": "parent.layout_x",
           "targetX": "layout_y",
           "targetY": "layout_x",
           "shape": "cornerX"
         }
       ]
     },
     "properties": {
       "enter": {
         "path": {"field": "layout_path"},
         "strokeWidth": {"value": 2},
         "stroke": {"value": "#000000"}
       }
     }
   },
   {
     "type": "text",
     "from": {
       "data": "tree",
       "transform": [
         {
           "type": "formula",
           "field": "ff_node_label",
           "expr": "if(datum.layout_depth == 0, 'Kantasienet', if(datum.layout_depth == 1, datum.A, if(datum.layout_depth == 2, datum.C, if(datum.layout_depth == 3, datum.D, if(datum.layout_depth == 4, datum.E, if(datum.layout_depth == 5, datum.E , ))))))"
         }
       ]
     },
     "properties": {
       "enter": {
         "x": {"field": "layout_y"},
         "dx": {"field": "offset"},
         "y": {"field": "layout_x"},
         "dy": {"value": -8},
         "font": {"value": "Arial"},
         "fontSize": {"value": 12},
         "align": {"field": "align"},
         "baseline": {"value": "middle"},
         "fill": {"value": "#0000ff"},
         "text": {"field": "ff_node_label"}
       }
     }
   }
 ]

} </graph>

Vega

Kantasienet

<graph> {

 "width": 1024,
 "height": 150,
 "background": "#ffffff",
 "data": [
   {
     "name": "tree",
     "values": [
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Kärpässienet", "E": "Punakärpässieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Kärpässienet", "E": "Kavalakärpässieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Kärpässienet", "E": "Valkokärpässieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Herkkusienet", "E": "Peltoherkkusieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Herkkusienet", "E": "Kuusiherkkusieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Herkkusienet", "E": "Viljelyherkkusieni"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Rouskut", "E": "Haaparousku"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Rouskut", "E": "kangasrousku"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Rouskut", "E": "Lutikkarousku"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Haperot", "E": "Aurinkohapero"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Haperot", "E": "Isohapero"  },
       {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Haperot", "E": "Pyökkihapero"  },

{"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Häränkielet", "E": "Häränkieli" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Tuhkelot", "E": "Känsätuhkelo" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Tuhkelot", "E": "Nuijakuukunen" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Helttasienet", "D": "Tuhkelot", "E": "Kenttätuhkelo" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Kivitatit", "E": "Herkkutatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Kivitatit", "E": "Punatatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Lehmäntatit", "E": "Lehmäntatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Lehmäntatit", "E": "Koivunpunikkitatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Tylopilus", "E": "Samettitatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Voitatit", "E": "" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Tatit", "D": "Voitatit", "E": "Voitatti" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Kantarellit", "D": "Vahverot", "E": "Keltavahvero" } , {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Kantarellit", "D": "Vahverot", "E": "Suppilovahvero" }, {"A": "Avokantaiset","B": "Varsinaiset avokantaiset","C": "Kantarellit", "D": "Vahverot", "E": "Mustatorvisieni" }

     ],
     "transform": [
       {
         "type": "treeify",
         "groupby": ["A","C","D"]
       },
       {
         "type": "hierarchy",
         "mode": "cluster",
         "nodesize": [20,100]
       },
       {
         "type": "formula",
         "field": "align",
         "expr": "'right'"
       },
       {
         "type": "formula",
         "field": "offset",
         "expr": "-10"
       }
     ]
   }
 ],
 "marks": [
   {
     "type": "path",
     "from": {
       "data": "tree",
       "transform": [
         {"type": "filter","test": "datum.parent"},
         {
           "type": "linkpath",
           "sourceX": "parent.layout_y",
           "sourceY": "parent.layout_x",
           "targetX": "layout_y",
           "targetY": "layout_x",
           "shape": "cornerX"
         }
       ]
     },
     "properties": {
       "enter": {
         "path": {"field": "layout_path"},
         "strokeWidth": {"value": 2},
         "stroke": {"value": "#000000"}
       }
     }
   },
   {
     "type": "text",
     "from": {
       "data": "tree",
       "transform": [
         {
           "type": "formula",
           "field": "ff_node_label",
           "expr": "if(datum.layout_depth == 0, 'Kantasienet', if(datum.layout_depth == 1, datum.A, if(datum.layout_depth == 2, datum.C, if(datum.layout_depth == 3, datum.D, if(datum.layout_depth == 4, datum.E, if(datum.layout_depth == 5, datum.E , ))))))"
         }
       ]
     },
     "properties": {
       "enter": {
         "x": {"field": "layout_y"},
         "dx": {"field": "offset"},
         "y": {"field": "layout_x"},
         "dy": {"value": -8},
         "font": {"value": "Arial"},
         "fontSize": {"value": 12},
         "align": {"field": "align"},
         "baseline": {"value": "middle"},
         "fill": {"value": "#0000ff"},
         "text": {"field": "ff_node_label"}
       }
     }
   }
 ]

} </graph>