What library should I use to create a chart like the one in the image? Sorry that I posted this here but I don't know where to post this.
Asked
Active
Viewed 94 times
-4

Nodos
- 85
- 1
- 10
-
Why not navigate to the charts tag you added or the related tags, or [search on SO](http://stackoverflow.com/search?q=charts+library) – yezzz May 07 '17 at 13:32
-
Possible duplicate of [JavaScript Chart Library](http://stackoverflow.com/questions/119969/javascript-chart-library) – yezzz May 07 '17 at 13:33
3 Answers
1
Checkout angular chart.js. I think "Doughnut Chart" is close to the above chart. http://jtblin.github.io/angular-chart.js/

Gyunesh Shefkedov
- 181
- 4
- 18
1
I think that´s not necessary to include and learn a big lib.
i show you a little prototyp with canvas, build a function from this:
var arcPos = degree => Math.PI*2/360*degree,
calcLength = percent => 300 * (percent / 100),
percent =75,
color = '#00f',
oldValue = 73,
vz='',
canvas = document.getElementById('myCanvas'),
context = canvas.getContext('2d'),
radius = 70;
with (context){
beginPath();
arc(canvas.width / 2, canvas.height / 2, radius,
arcPos(120),arcPos(60), false);
lineWidth = 15;
strokeStyle = '#ddd';
lineCap = "round"
stroke();
beginPath();
arc(canvas.width / 2, canvas.height / 2, radius, arcPos(120),
arcPos(calcLength(percent) + 120), false);
strokeStyle = color;
stroke();
font = "normal bold 50px sans-serif";
textAlign = 'center';
fillText(percent, 100, 100);
font = "normal bold 16px sans-serif";
textAlign = 'center';
vz=((percent - oldValue) > 0)?'+':'';
fillText(oldValue + ' (' + vz + (percent - oldValue) + '%)', 100, 130);
if ((percent - oldValue) > 0) {
beginPath();
lineWidth = 3;
strokeStyle = '#f00';
moveTo(100, 165);lineTo(100, 145);stroke();
beginPath();moveTo(100, 145);lineTo(105, 150);stroke();
moveTo(100, 145);lineTo(95, 150);stroke();
}
if ((percent - oldValue) < 0) {
beginPath();
lineWidth = 3;
strokeStyle = '#f00';
moveTo(100, 165);lineTo(100, 145);stroke();
beginPath();moveTo(100, 165);lineTo(105, 160);context.stroke();
moveTo(100, 165);lineTo(95, 160);stroke();
}
}
play with this set oldValue to 73...

Frank Wisniewski
- 1,182
- 8
- 7