the quickchart pie chart does what I showed above but constructing it quickly becomes very complex and there are so many data points. This is the quickchart code before I convert to the url
"{
type: 'pie',
data: {
datasets: [
{
labels: ['N➡️', '⬅️','', '', '', '', '', '', '', 'NE', '', '', '', '', '', '', '', '', 'E➡️', '', '', '', '', '', '', '', '', 'SE', '', '', '', '', '', '', '', '', 'S⬅️️', '', '', '', '', '', '', '', '', 'SW', '', '', '', '', '', '', '', '', '⬅️️W', '', '', '', '', '', '', '', '', 'NW', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ],
data: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
backgroundColor: ['rgb(18, 60, 92)','rgb(255, 0, 102)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white',],
borderWidth: 1,
borderColor: 'white',
},
{
label:'Ring 1',
labels: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'MHWH', 'Rybury', '', 'Combe Gibbet', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ],
data:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 70, 60, 20, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
backgroundColor:['rgb(18, 60, 92)','rgb(255, 0, 102)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white',],
borderWidth: 2,
borderColor: 'white',
},
{
label:'Ring 2',
labels: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Tan Hill', 'Milk Hill', '', 'Uffington WH', '', '', '', '', '', '', '', '', '', '', '', '', ],
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 100, 60, 90, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],
backgroundColor: ['rgb(18, 60, 92)','rgb(255, 0, 102)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white',],
borderWidth: 2,
borderColor: 'white',
},
{
label:'Ring 3',
labels: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Golden Ball', '', 'Liddington', '', 'Liddington', '', '', '', '', '', '', ],
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 65, 20, 10, 50, 40, 40, 0, 0, 0, 0, 0, ],
backgroundColor: ['rgb(18, 60, 92)','rgb(255, 0, 102)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white',],
borderWidth: 2,
borderColor: 'white',
},
{
label:'Ring 4',
labels: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Sugar', '', 'White Hill', '', ],
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 20, 60, 10, 70, ],
backgroundColor: ['rgb(18, 60, 92)','rgb(255, 0, 102)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(18, 60, 92)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','rgb(204, 204, 204)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','rgba(255, 0, 102,0.2)','white','rgb(165, 230, 186)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white','white','rgba(255, 0, 102,0.2)','white','rgba(255, 0, 102,0.2)','white',],
borderWidth: 2,
borderColor: 'white',
},
],
},
options: {
rotation: (-0.5 * Math.PI)-((2*Math.PI) / 360)*2.5,
cutoutPercentage: 20,
plugins: {
doughnutlabel: {
labels: [
{
text: '🍃',
color: 'black',
textAlign: 'center',
font: {
size: 150,
weight: 'regular',
},
},
],
},
datalabels: {
formatter: (val, ctx) => {
const label =
ctx.chart.data.datasets[ctx.datasetIndex].labels[ctx.dataIndex];
return `${label}`;
},
color: function(context) {
var index = context.dataIndex;
var label = context.dataset.labels[index];
return index < 72 ? 'white' :
'black';
},
rotation: [-90,-85,-80,-75,-70,-65,-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,-90,95,100,105,110,115,120,125,130,-45,140,145,150,155,160,165,170,175,0,185,190,195,200,205,210,215,220,45,230,235,240,245,250,255,260,265,-105,10,75,295,330,5,-115,-35,40,287.5,332.5,-117.5,-17.5,205,40,250,295,335,-85,25,245,280,320,],
font: {
size: 22,
},
},
},
},
}"
I’m not familar with chartjs to know if it could provide a solution