2016-07-25 12 views
-3

Ich möchte ein Donut-Diagramm wie folgt.Html, CSS - So erstellen Sie ein Donut-Diagramm wie dieses?

Wie erstelle ich es? Ich bin mir nicht sicher, was der richtige Prozess dafür ist.

Vielen Dank. I want a Donut chart like this

+0

Sie alle mit Hilfe von CSS selbst, es zu schaffen? oder es macht Ihnen nichts aus, einige externe Bibliotheken wie Highcharts etc. – Krish

+0

@Krisch Ist das möglich, wenn Sie keine anderen externen Bibliotheken verwenden? Ich bin offen für jeden Vorschlag. Vielen Dank. – Varun

+1

Sehr einfach mit [Html5 Canvas] (https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) mit den 'context.arc' und' context.fillText' Befehlen. Hier ist ein kurzes Beispiel (https://jsfiddle.net/wm6szms3/), mit dem Sie beginnen können. – markE

Antwort

0

Die obige Ringdiagramm getan werden kann, mit Hilfe von HTML 5 Canvas fein.

Probe: https://jsfiddle.net/wm6szms3/

Html-Code:

<canvas id="canvas" width=325 height=325></canvas> 

JavaScript-Code:

var canvas=document.getElementById("canvas"); 
var ctx=canvas.getContext("2d"); 

var colors=['skyblue','gray','orange']; 
var values=[47,6,47]; 
var labels=['Voluntary','Robot','Mandatory']; 

dmbChart(150,150,125,25,values,colors,labels,0); 

function dmbChart(cx,cy,radius,arcwidth,values,colors,labels,selectedValue){ 
    var tot=0; 
    var accum=0; 
    var PI=Math.PI; 
    var PI2=PI*2; 
    var offset=-PI/2; 
    ctx.lineWidth=arcwidth; 
    for(var i=0;i<values.length;i++){tot+=values[i];} 
    for(var i=0;i<values.length;i++){ 
     ctx.beginPath(); 
     ctx.arc(cx,cy,radius, 
      offset+PI2*(accum/tot), 
      offset+PI2*((accum+values[i])/tot) 
     ); 
     ctx.strokeStyle=colors[i]; 
     ctx.stroke(); 
     accum+=values[i]; 
    } 
    var innerRadius=radius-arcwidth-3; 
    ctx.beginPath(); 
    ctx.arc(cx,cy,innerRadius,0,PI2); 
    ctx.fillStyle=colors[selectedValue]; 
    ctx.fill(); 
    ctx.textAlign='center'; 
    ctx.textBaseline='bottom'; 
    ctx.fillStyle='white'; 
    ctx.font=(innerRadius)+'px verdana'; 
    ctx.fillText(values[selectedValue],cx,cy+innerRadius*.9); 
    ctx.font=(innerRadius/4)+'px verdana'; 
    ctx.fillText(labels[selectedValue],cx,cy-innerRadius*.25); 
} 
0

Hier ist ein Code Beispiel von Google Charts Javascript verwenden,

wenn Sie anspruchsvollere Diagramm, das Sie this verwenden können

Weitere Charts mit jsfiddle Beispiele können Sie here

 google.charts.load('current', {'packages':['corechart']}); 
 
     google.charts.setOnLoadCallback(drawChart); 
 
     function drawChart() { 
 

 
     var data = google.visualization.arrayToDataTable([ 
 
      ['Effort', 'Amount given'], 
 
      ['My all',  100], 
 
     ]); 
 

 
     var options = { 
 
      pieHole: 0.5, 
 
      pieSliceTextStyle: { 
 
      color: 'black', 
 
      }, 
 
      legend: 'none' 
 
     }; 
 

 
     var chart = new google.visualization.PieChart(document.getElementById('donut_single')); 
 
     chart.draw(data, options); 
 
     }
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
 
     <div id="donut_single" style="width: 900px; height: 500px;"></div> 
 

+0

Ich weiß es zu schätzen, dass du antwortest, aber ich brauche eine benutzerdefinierte, die genauso aussieht wie die, die ich brauche. Wenn ich Google-Diagramme verwende, kann ich nicht das Aussehen bekommen, das ich will. – Varun

Verwandte Themen