Data Visualization Diagrams, Data Tableau, Bar Charts, Line Charts, Function Charts, Point Charts, Area Charts, Spider Webs, Radar Webs, Donut Charts, Pie Charts, Bubble Charts, Gauge Charts

Data Diagrams

Label
type: text
datatype: color
type: text
datatype: color
type: text
datatype: color
minOccurs: 1
datatype: color
px
datatype: number
°
type: boolean
datatype: color
px
datatype: color
px
datatype: color
datatype: number
px
datatype: color
datatype: number
px
FillLabel
datatype: color
type: text
datatype: color
type: text
datatype: color
type: text
minOccurs: 1
Declare the stack
datatype: number
px
datatype: number
px
datatype: number
px
datatype: color
px
datatype: integer
type: text
datatype: number
px
datatype: number
px
datatype: number
°
type: text
%

Stroke & fill
datatype: color
datatype: number
px
,px
datatype: color
Outer distance from frame to context
datatype: number
px
datatype: number
px
datatype: number
px
datatype: number
px
Inner distance from frame to diagram
datatype: number
px
datatype: number
px
datatype: number
px
datatype: number
px
datatype: color
datatype: number
px
,px
datatype: color
datatype: number
px
,px
type: file
Buddhist
Christian
Hindu
Poverty
datatype: number
datatype: number
datatype: number
datatype: number
Land
datatype: number
datatype: number
datatype: number
datatype: number
Language
datatype: number
datatype: number
datatype: number
datatype: number
type: file
CSV, XML or JSON
<?xml version="1.0" encoding="UTF-8"?>
<dia:data xmlns:ds="http://www.bootstrap-data.org" xmlns:dia="http://data-diagrams.com">
<row>
<cell value="34">
<sub>13</sub>
<sub>33</sub>
<sub>54</sub>
</cell>
[3 lines]
</row>
[4 lines]
<row>
<cell value="24">
<sub>20</sub>
<sub>30</sub>
<sub>50</sub>
</cell>
[3 lines]
</row>
[4 lines]
<row>
<cell value="54">
<sub>50</sub>
<sub>30</sub>
<sub>20</sub>
</cell>
[3 lines]
</row>
[4 lines]
</dia:data>
[15 lines]
type: file
CSV, XML or JSON

 
type: boolean
 
 
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" preserveAspectRatio="xMinYMin meet" class="svg-chart" viewBox="0 0 820 500" xmlns:ds="http://www.bootstrap-data.org">
<script nonce="" test=""> const doc = this.document; let show = false; doc.addEventListener("DOMContentLoaded", (ev) => { const svg = ev.currentTarget; /* download menu */ const menus = svg.querySelectorAll('[data-svg-dropdown]'); menus.forEach( (item) => { const g = item.closest('g'); item.addEventListener('click', (e) => { const obj = e.currentTarget; const state = obj.getAttribute('data-svg-dropdown'); console.log(state); if(state == 'collapsed') { g.querySelector('.menu').style.display = ''; obj.setAttribute('data-svg-dropdown','expanded'); } else { g.querySelector('.menu').style.display = 'none'; obj.setAttribute('data-svg-dropdown','collapsed'); } }) const downloadArr = g.querySelectorAll('[data-svg-download]'); downloadArr.forEach( (i) => { i.addEventListener('click', (e) => { e.stopPropagation(); e.preventDefault(); const obj = e.currentTarget; const format = obj.getAttribute('data-svg-download'); console.log(format); }); }); }); /* interactive animations */ /* grow */ const growArr = svg.querySelectorAll("g.pie[data-transform]"); growArr.forEach(async (item) => { const svg = item.closest('svg'); /* save stroke */ await item.setAttribute('data-stroke-width', await item.style.strokeWidth); /* mouse enter */ item.addEventListener("mouseenter", async (e) => { e.stopPropagation(); e.preventDefault(); const obj = e.currentTarget; const transform = obj.getAttribute('data-transform'); /* grow */ if( obj.hasAttribute('data-transform') ) { obj.style.transition = 'transform 500ms ease-in-out'; obj.style.transform = transform; } /* stroke obj.style.strokeWidth = '2px'; */ }, false); /* mouse leave */ item.addEventListener("mouseleave", (e) => { e.stopPropagation(); e.preventDefault(); const obj = e.currentTarget; /* grow */ obj.style.transform = 'translate(0,0)'; /* stroke */ obj.style.strokeWidth = obj.getAttribute('data-stroke-width');/* '1px'; */ }, false); } ) /* edge */ const edgeArr = svg.querySelectorAll("path.edge"); edgeArr.forEach(async (item) => { const g = item.closest('g'); g.addEventListener("mouseenter", async (e) => { e.stopPropagation(); e.preventDefault(); /* show */ item.style.display = '' }, false); g.addEventListener("mouseleave", (e) => { e.stopPropagation(); e.preventDefault(); item.style.display = 'none'; }, false); } ) /* tooltip */ const toolArr = svg.querySelectorAll("foreignObject"); toolArr.forEach(async (foreign) => { const svg = foreign.closest('svg'); const g = foreign.closest('g'); /* https://stackoverflow.com/questions/10298658/mouse-position-inside-autoscaled-svg */ var pt = svg.createSVGPoint(); g.addEventListener("mouseenter", async (e) => { e.stopPropagation(); e.preventDefault(); /* move tooltip */ svg.appendChild(foreign); }, false); g.addEventListener("mousemove", async (e) => { e.stopPropagation(); e.preventDefault(); var loc = cursorPoint(e); const X = loc.x + 5; const Y = loc.y - 1; foreign.setAttribute('x',parseInt(X)); foreign.setAttribute('y',parseInt(Y)); foreign.style.display = ''; function cursorPoint(e) { pt.x = e.clientX; pt.y = e.clientY; return pt.matrixTransform(svg.getScreenCTM().inverse()); } }, false); g.addEventListener("mouseleave", (e) => { e.stopPropagation(); e.preventDefault(); foreign.style.display = 'none'; }, false); }) }); </script>
<rect class="chart-frame" x="0" y="0" width="820" height="500" fill="#ffffff" stroke="#000000" stroke-width="0" stroke-dasharray="5,5"/>
<rect x="100" width="20" height="20" fill="#0d6efd" y="32"/>
+
<text class="chart-labels" x="125" y="48" fill="#000000" font-family="Arial" font-size="14" text-anchor="start" transform=" rotate(0 125 42)">
<tspan>Asian</tspan>
</text>
[1 lines]
<rect x="100" width="20" height="20" fill="#00fcff" y="54"/>
+
<text class="chart-labels" x="125" y="70" fill="#000000" font-family="Arial" font-size="14" text-anchor="start" transform=" rotate(0 125 64)">
<tspan>African</tspan>
</text>
[1 lines]
<rect x="100" width="20" height="20" fill="#00f900" y="76"/>
+
<text class="chart-labels" x="125" y="92" fill="#000000" font-family="Arial" font-size="14" text-anchor="start" transform=" rotate(0 125 86)">
<tspan>European</tspan>
</text>
[1 lines]
<ellipse cx="410" cy="250" rx="200" ry="200" fill-opacity="0.5" stroke="#000000" stroke-width="1" stroke-dasharray="" fill="whiteSmoke"/>
+
<g class="pie" data-animation="|grow||edge|" data-transform="translate(8.09px,-5.88px)">
<path style="display:none;" class="edge" fill="transparent" stroke="yellow" stroke-width="15" stroke-dasharray="" d="M410,50 A200,200 0 0,1 600.21,311.8"/>
+
<text x="592.025425" fill="#000000" font-family="Arial" font-size="20" alignment-baseline="middle" y="117.7453675" text-anchor="start">
<tspan x="592.025425">Poverty</tspan>
</text>
[1 lines]
+
<g class="subpie">
<path class="subpie" fill="#00f900" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L410,50 A200,200 0 0,1 600,312 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>European</default:small>
</default:div>
[1 lines]
<default:div>Poverty</default:div>
<default:small>54 of 30%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
+
<g class="subpie">
<path class="subpie" fill="#00fcff" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L410,158 A92,92 0 0,1 497,278 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>African</default:small>
</default:div>
[1 lines]
<default:div>Poverty</default:div>
<default:small>33 of 30%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
+
<g class="subpie">
<path class="subpie" fill="#0d6efd" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L410,224 A26,26 0 0,1 435,258 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>Asian</default:small>
</default:div>
[1 lines]
<default:div>Poverty</default:div>
<default:small>13 of 30%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
</g>
[30 lines]
+
<g class="pie" data-animation="|grow||edge|" data-transform="translate(5.88px,8.09px)">
<path style="display:none;" class="edge" fill="transparent" stroke="yellow" stroke-width="15" stroke-dasharray="" d="M600.21,311.8 A200,200 0 0,1 410,450"/>
+
<text x="542.2546325" fill="#000000" font-family="Arial" font-size="20" alignment-baseline="middle" y="432.025425" text-anchor="start">
<tspan x="542.2546325">Land</tspan>
</text>
[1 lines]
+
<g class="subpie">
<path class="subpie" fill="#00f900" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L600,312 A200,200 0 0,1 410,450 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>European</default:small>
</default:div>
[1 lines]
<default:div>Land</default:div>
<default:small>50 of 20%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
+
<g class="subpie">
<path class="subpie" fill="#00fcff" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L505,281 A100,100 0 0,1 410,350 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>African</default:small>
</default:div>
[1 lines]
<default:div>Land</default:div>
<default:small>30 of 20%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
+
<g class="subpie">
<path class="subpie" fill="#0d6efd" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L448,262 A40,40 0 0,1 410,290 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>Asian</default:small>
</default:div>
[1 lines]
<default:div>Land</default:div>
<default:small>20 of 20%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
</g>
[30 lines]
+
<g class="pie" data-animation="|grow||edge|" data-transform="translate(-10px,0px)">
<path style="display:none;" class="edge" fill="transparent" stroke="yellow" stroke-width="15" stroke-dasharray="" d="M410,450 A200,200 0 0,1 410,50"/>
+
<text x="185" fill="#000000" font-family="Arial" font-size="20" alignment-baseline="middle" y="250" text-anchor="end">
<tspan x="185">Language</tspan>
</text>
[1 lines]
+
<g class="subpie">
<path class="subpie" fill="#00f900" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L410,450 A200,200 0 0,1 410,50 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>European</default:small>
</default:div>
[1 lines]
<default:div>Language</default:div>
<default:small>20 of 50%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
+
<g class="subpie">
<path class="subpie" fill="#00fcff" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L410,410 A160,160 0 0,1 410,90 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>African</default:small>
</default:div>
[1 lines]
<default:div>Language</default:div>
<default:small>30 of 50%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
+
<g class="subpie">
<path class="subpie" fill="#0d6efd" fill-opacity="1" stroke="#000000" stroke-width="1" d="M410,250 L410,350 A100,100 0 0,1 410,150 z"/>
+
<foreignObject style="display:none;" width="100" height="70">
+
<default:div>
+
<default:div style="text-align:center;">
+
<default:div>
<default:small>Asian</default:small>
</default:div>
[1 lines]
<default:div>Language</default:div>
<default:small>50 of 50%</default:small>
</default:div>
[4 lines]
</default:div>
[5 lines]
</foreignObject>
[6 lines]
</g>
[8 lines]
</g>
[30 lines]
+
<a target="_blank" xlink:href="https://data-diagrams.com">
<text x="20" y="495" fill="grey" font-size="10" font-family="arial">data-diagrams.com</text>
</a>
[1 lines]
<style type="text/css" media="all" charset="UTF-8" nonce=""> .svg-chart * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .svg-chart .bar { fill-opacity:1; } .svg-chart .bar:hover { fill-opacity:0.8; } .svg-chart .pie { fill-opacity:1; } /* .svg-chart .pie:hover { stroke: grey; stroke-width: 3px; } */ .pie:hover { fill-opacity:0.8; } .subpie:hover { fill-opacity:0.8; } foreignObject>div { float:left; background-color:rgb(33,37,41); color:white; font-family:Arial; padding:5px; border:1px solid white; border-radius:3px; } </style>
</svg>
[108 lines]
 
 

The link only works for 24 hours. Sign Up for permanent link.

 



Oops

Your browser is not supported

A modern browser with Javascript ES6 is required

Any major browser from 2015 onwards will be suitable