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?



Color Themes


{
   "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"]
   }
}
{
   "circularArc" : "360",
   "circularRotate" : "0",
   "circularType" : "sunburst",
   "colorBy" : "Quarter",
   "colorScheme" : "RdYlBu",
   "graphType" : "Circular",
   "hierarchy" : ["Quarter","Month"],
   "showTransition" : "false",
   "title" : "Donnut with two levels",
   "transitionStep" : "50",
   "transitionTime" : "1500"
}
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"),
  showTransition=FALSE,
  title="Donnut with two levels",
  transitionStep=50,
  transitionTime=1500
)