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?
<head> <!-- 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/dist/canvasXpress.min.js"></script> </head> <body> <!-- 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":"Quarter", "colorScheme":"RdYlBu", "graphType":"Circular", "hierarchy":[ "Quarter", "Month" ], "objectBorderColor":"rgb(0,0,0)", "showTransition":false, "title":"Donnut with two levels", "transitionStep":"50", "transitionTime":"1500" } // Call the CanvasXpress function to create the graph var cX = new CanvasXpress("canvasId", data, config); </script> </body>
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="Quarter", colorScheme="RdYlBu", graphType="Circular", hierarchy=list("Quarter", "Month"), objectBorderColor="rgb(0,0,0)", showTransition=FALSE, title="Donnut with two levels", transitionStep=50, transitionTime=1500 )