Graph Test

From wikiluntti
Revision as of 16:52, 14 June 2021 by Mol (talk | contribs) (→‎Bar chart)

Introduction

https://www.mediawiki.org/wiki/Extension:Graph/Guide

Methods

Graph

<graph> {

 "width": 600,
 "height": 150,
 "background": "#ffffff",
 "data": [
   {
     "name": "tree",
     "values": [
       {"A": "Luukalat","B": "Viuhkaeväiset","C": "Cladistia" },
       {"A": "Luukalat","B": "Viuhkaeväiset","C": "Rustokiillesuomuiset" },
       {"A": "Luukalat","B": "Viuhkaeväiset","C": "Luukiillesuomuiset" },
       {"A": "Luukalat","B": "Viuhkaeväiset","C": "Teleosteomorpa" },
       {"A": "Luukalat","B": "Varsieväiset","C": "Latimeriat" },
       {"A": "Luukalat","B": "Varsieväiset","C": "Keuhkokalat"},
       {"A": "Luukalat","B": "Varsieväiset","C": "Nelijalkaiset"},
       {"A": "Rustokalat","B": "Hait","C": ""},
       {"A": "Rustokalat","B": "Rauskut","C": ""},
       {"A": "Rustokalat","B": "Sillikuningaskalat","C": ""},
       {"A": "Leuattomat selkärankaiset","B": "Ympyräsuiset","C": "Nahkiaiset"},
       {"A": "Leuattomat selkärankaiset","B": "Alkukalat","C": "Pteraspidomorphi"},
       {"A": "Leuattomat selkärankaiset","B": "Alkukalat","C": "Thelodonti"},
       {"A": "Leuattomat selkärankaiset","B": "Alkukalat","C": "Cephalaspidomorphi"}
     ],
     "transform": [
       {
         "type": "treeify",
         "groupby": ["A","B"]
       },
       {
         "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, 'Selkärankaiset', if(datum.layout_depth == 1, datum.A, if(datum.layout_depth == 2, datum.B, if(datum.layout_depth == 3, datum.C, ))))"
         }
       ]
     },
     "properties": {
       "enter": {
         "x": {"field": "layout_y"},
         "dx": {"field": "offset"},
         "y": {"field": "layout_x"},
         "dy": {"value": -8},
         "font": {"value": "Arial"},
         "fontSize": {"value": 16},
         "align": {"field": "align"},
         "baseline": {"value": "middle"},
         "fill": {"value": "#0000ff"},
         "text": {"field": "ff_node_label"}
       }
     }
   }
 ]

} </graph>

Line Chart

Tutorial: https://en.wikipedia.org/wiki/Template:Graph:Chart

<graph> Template:Graph:Chart </graph>


Line graphs

https://www.mediawiki.org/wiki/Extension:Graph/Demo

<graph>

{
  "version": 2,
  "width": 550,
  "height": 400,
  "data": [
    {
      "name": "tree",
      "url": "https://cod3v.info/index.php?title=Extension:Graph/data/flare-json",
      "format": {"type": "treejson"},
      "transform": [
        {"type": "hierarchy", "field": "size", "size": [400, 500]}
      ]
    }
  ],
  "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": "diagonalX"
          }
        ]
      },
      "properties": {
        "enter": {
          "path": {"field": "layout_path"},
          "stroke": {"value": "#ddd"}
        }
      }
    },
    {
      "type": "text",
      "from": {"data": "tree"},
      "properties": {
        "enter": {
          "x": {"field": "layout_y", "offset": -10},
          "y": {"field": "layout_x"},
          "font": {"value": "Helvetica Neue"},
          "fontSize": {"value": 10},
          "align": {"value": "left"},
          "baseline": {"value": "middle"},
          "fill": {"value": "#000"},
          "text": {"field": "name"}
        }
      }
    }
  ]
}

</graph>


Bar chart from Vega Tutorials

https://vega.github.io/vega/tutorials/bar-chart/

<graph> {

 "version": 2,
 "width": 400,
 "height": 200,
 "padding": 5,
 "data": [
   {
     "name": "table",
     "values": [
       {"category": "A", "amount": 28},
       {"category": "B", "amount": 55},
       {"category": "C", "amount": 43},
       {"category": "D", "amount": 91},
       {"category": "E", "amount": 81},
       {"category": "F", "amount": 53},
       {"category": "G", "amount": 19},
       {"category": "H", "amount": 87}
     ]
   }
 ],
 "signals": [
   {
     "name": "tooltip",
     "value": {},
     "on": [
       {"events": "rect:mouseover", "update": "datum"},
       {"events": "rect:mouseout",  "update": "{}"}
     ]
   }
 ],
 "scales": [
   {
     "name": "xscale",
     "type": "band",
     "domain": {"data": "table", "field": "category"},
     "range": "width",
     "padding": 0.05,
     "round": true
   },
   {
     "name": "yscale",
     "domain": {"data": "table", "field": "amount"},
     "nice": true,
     "range": "height"
   }
 ],
 "axes": [
   { "orient": "bottom", "scale": "xscale" },
   { "orient": "left", "scale": "yscale" }
 ],
 "marks": [
   {
     "type": "rect",
     "from": {"data":"table"},
     "encode": {
       "enter": {
         "x": {"scale": "xscale", "field": "category"},
         "width": {"scale": "xscale", "band": 1},
         "y": {"scale": "yscale", "field": "amount"},
         "y2": {"scale": "yscale", "value": 0}
       },
       "update": {
         "fill": {"value": "steelblue"}
       },
       "hover": {
         "fill": {"value": "red"}
       }
     }
   },
   {
     "type": "text",
     "encode": {
       "enter": {
         "align": {"value": "center"},
         "baseline": {"value": "bottom"},
         "fill": {"value": "#333"}
       },
       "update": {
         "x": {"scale": "xscale", "signal": "tooltip.category", "band": 0.5},
         "y": {"scale": "yscale", "signal": "tooltip.amount", "offset": -2},
         "text": {"signal": "tooltip.amount"},
         "fillOpacity": [
           {"test": "isNaN(tooltip.amount)", "value": 0},
           {"value": 1}
         ]
       }
     }
   }
 ]

} </graph>