Extension:Graph/Demo/RadialTree
From Linux Web Expert
<graph>{
"version": 2, "width": 600, "height": 600, "padding": 5, "signals": [ { "name": "rotation", "init": 0, "streams": [{ "type": "click", "expr": "rotation + 6.14/180" }] } ], "data": [ { "name": "tree", "url": "wikiraw:///Extension:Graph/data/flare-json", "format": {"type": "treejson"}, "transform": [ { "type": "hierarchy", "sort": "name", "size": [6.28, 300], "orient": "radial", "output": {"x": "angle1", "y": "radius"} }, { "type": "formula", "field": "angle", "expr": "(datum.angle1 + rotation) % (2*PI)" }, { "type": "formula", "field": "sign", "expr": "datum.angle > 3.14 ? 1 : -1" }, { "type": "formula", "field": "degrees", "expr": "!datum.radius ? 0 : (datum.angle + datum.sign*1.57) * 180/PI" }, { "type": "formula", "field": "yy", "expr": "300 + datum.radius * cos(datum.angle)" }, { "type": "formula", "field": "xx", "expr": "300 + datum.radius * -sin(datum.angle)" }, { "type": "formula", "field": "align", "expr": "!datum.radius ? 'center' : datum.sign < 0 ? 'left' : 'right'" } ] } ], "marks": [ { "type": "path", "from": { "data": "tree", "transform": [ {"type": "filter", "test": "datum.parent"}, { "type": "linkpath", "sourceX": "parent.xx", "sourceY": "parent.yy", "targetX": "xx", "targetY": "yy", "shape": "line" } ] }, "properties": { "update": { "path": {"field": "layout_path"}, "stroke": {"value": "#ddd"} } } }, { "type": "text", "from": {"data": "tree"}, "properties": { "update": { "x": {"field": "xx"}, "y": {"field": "yy"}, "font": {"value": "Helvetica Neue"}, "fontSize": {"value": 10}, "align": {"field": "align"}, "baseline": {"value": "middle"}, "fill": {"value": "#000"}, "text": {"field": "name"}, "angle": {"field": "degrees"} } } } ]
}</graph>
<graph>
{
"version": 2,
"width": 600,
"height": 600,
"padding": 5,
"signals": [
{ "name": "rotation", "init": 0,
"streams": [{
"type": "click",
"expr": "rotation + 6.14/180"
}]
}
],
"data": [
{
"name": "tree",
"url": "wikiraw:///Extension:Graph/data/flare-json",
"format": {"type": "treejson"},
"transform": [
{ "type": "hierarchy", "sort": "name", "size": [6.28, 300], "orient": "radial", "output": {"x": "angle1", "y": "radius"} },
{ "type": "formula", "field": "angle", "expr": "(datum.angle1 + rotation) % (2*PI)" },
{ "type": "formula", "field": "sign", "expr": "datum.angle > 3.14 ? 1 : -1" },
{ "type": "formula", "field": "degrees", "expr": "!datum.radius ? 0 : (datum.angle + datum.sign*1.57) * 180/PI" },
{ "type": "formula", "field": "yy", "expr": "300 + datum.radius * cos(datum.angle)" },
{ "type": "formula", "field": "xx", "expr": "300 + datum.radius * -sin(datum.angle)" },
{ "type": "formula", "field": "align", "expr": "!datum.radius ? 'center' : datum.sign < 0 ? 'left' : 'right'" }
]
}
],
"marks": [
{
"type": "path",
"from": {
"data": "tree",
"transform": [
{"type": "filter", "test": "datum.parent"},
{
"type": "linkpath",
"sourceX": "parent.xx", "sourceY": "parent.yy",
"targetX": "xx", "targetY": "yy",
"shape": "line"
}
]
},
"properties": {
"update": {
"path": {"field": "layout_path"},
"stroke": {"value": "#ddd"}
}
}
},
{
"type": "text",
"from": {"data": "tree"},
"properties": {
"update": {
"x": {"field": "xx"},
"y": {"field": "yy"},
"font": {"value": "Helvetica Neue"},
"fontSize": {"value": 10},
"align": {"field": "align"},
"baseline": {"value": "middle"},
"fill": {"value": "#000"},
"text": {"field": "name"},
"angle": {"field": "degrees"}
}
}
}
]
}
</graph>