Donnut Chart

A doughnut plot displays the value of several entities, really often to show proportions that must add up to 100%. It is very close from a pie plot and thus suffers the same drawbacks. It is thus better to avoid using it, why not replacing it with a barplot or lollipop plot?


Example Color Themes

Example Fonts



Show Code

Tools

<!-- Include the CanvasXpress library in your HTML file -->
<link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
<script src="https://www.canvasxpress.org/canvasXpress.min.js"></script>


<!-- Create a canvas element for the chart with the desired dimensions -->
<div>
  <canvas id="canvasId" width="600" height="600"</canvas>
</div>


<!-- Create a script to initialize the chart -->
<script>

  <!-- Create the data for the graph -->
  var data = {
     "x" : {
        "Color" : ["red","blue","green","grey","red","blue","green","grey","red","blue","green","grey","red","blue","green"],
        "Month" : ["Jan","Feb","Feb","Feb","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],
        "Quarter" : ["1st","1st","1st","1st","1st","1st","2nd","2nd","2nd","3rd","3rd","3rd","4th","4th","4th"],
        "Week" : [null,"Week 1","Week 2","Week 3","Week 4",null,null,null,null,null,null,null,null,null,null]
     },
     "y" : {
        "data" : [
          [3.5,1.2,0.8,0.6,0.5,1.7,1.1,0.8,0.3,0.7,0.6,0.1,0.5,0.4,0.3]
        ],
        "smps" : ["Sales1","Sales2","Sales3","Sales4","Sales5","Sales6","Sales7","Sales8","Sales9","Sales10","Sales11","Sales12","Sales13","Sales14","Sales15"],
        "vars" : ["Sales"]
     }
  }
  
  
  <-- Create the configuration for the graph -->
  var config = {
     "circularArc":"360",
     "circularRotate":"0",
     "circularType":"sunburst",
     "colorBy":"Mont",
     "colorScheme":"Bootstrap",
     "graphType":"Circular",
     "hierarchy":[
        "Month"
     ],
     "objectBorderColor":"rgb(0,0,0)",
     "showTransition":"false",
     "title":"Simple Donnut",
     "transitionStep":"50",
     "transitionTime":"1500"
  }
  

  <!-- Call the CanvasXpress function to create the graph -->
  var cX = new CanvasXpress("canvasId", data, config);


</script>
library(canvasXpress)
y=read.table("https://www.canvasxpress.org/data/cX-sunburst-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
x=read.table("https://www.canvasxpress.org/data/cX-sunburst-smp.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
canvasXpress(
  data=y,
  smpAnnot=x,
  circularArc=360,
  circularRotate=0,
  circularType="sunburst",
  colorBy="Mont",
  colorScheme="Bootstrap",
  graphType="Circular",
  hierarchy=list("Month"),
  objectBorderColor="rgb(0,0,0)",
  showTransition=FALSE,
  title="Simple Donnut",
  transitionStep=50,
  transitionTime=1500
)