1👍
✅
To make that possible, change the value of the "text" in your generateLabels function from a string to an array, and add a tooltip plugin.
Modify your text in generateLabels function
return {
text: [typerOne,typerTwo], # before typerTwo + ": " + typerOne
fillStyle: style.backgroundColor,
strokeStyle: style.borderColor,
lineWidth: style.borderWidth,
pointStyle: pointStyle,
hidden: !chart.getDataVisibility(i),
// Extra data used for toggling the correct item
index: i
};
Modify tooltip label
tooltip: {
callbacks: {
label: function(context) {
return [context.formattedValue, context.label]
}
}
},
// donut chart start
const donutData = {
labels: [
'Başarılı İşlem',
'Bekleyen İşlem',
'Başarısız İşlem'
],
datasets: [{
data: [1248, 1182, 1020],
backgroundColor: [
'#0FC351',
'#FD865E',
'#F75555'
],
borderRadius: 50,
borderWidth: 0,
spacing: -20,
hoverOffset: 4
}]
};
var donutCtx = document.getElementById('donutChart');
var myDonutChart = new Chart(donutCtx, {
type: "doughnut",
data: donutData,
options: {
layout: {
padding: {
top: 40,
}
},
responsive: true,
aspectRatio: 2,
plugins: {
tooltip: {
callbacks: {
label: function(context) {
return [context.formattedValue, context.label]
}
}
},
legend: {
position: "right",
labels: {
font: {
size: 12,
weight: 600
},
color: "#2D3748",
boxWidth: 10,
boxHeight: 10,
usePointStyle: true,
pointStyle: "circle",
padding: 25,
generateLabels(chart) {
const data = chart.data;
if (data.labels.length && data.datasets.length) {
const {
labels: {
pointStyle
}
} = chart.legend.options;
return data.labels.map((label, i) => {
const meta = chart.getDatasetMeta(0);
const style = meta.controller.getStyle(i);
let typerOne = `${data['datasets'][0].data[i]} Adem`;
let typerTwo = `${label}`;
return {
text: [typerOne, typerTwo],
fillStyle: style.backgroundColor,
strokeStyle: style.borderColor,
lineWidth: style.borderWidth,
pointStyle: pointStyle,
hidden: !chart.getDataVisibility(i),
// Extra data used for toggling the correct item
index: i
};
});
}
return [];
}
}
},
datalabels: {
display: false
}
},
cutout: "80%",
radius: "80%",
}
});
// donut chart end
.donut-chartx {
position: relative;
@media (min-width: 1600px) {
min-height: 262px;
}
@media (min-width:1400px) and (max-width:1599px) {
min-height: 230px;
}
@media (min-width:992px) and (max-width:1399px) {
min-height: 200px;
}
background-color: #ffffff;
-webkit-border-radius: 16px;
-moz-border-radius: 16px;
-ms-border-radius: 16px;
border-radius: 16px;
border: 1px solid #edf2f7;
.chart-title {
position: absolute;
left: 20px;
top: 20px;
font-weight: 800;
@media (min-width: 1600px) {
font-size:18px;
}
@media (min-width:1400px) and (max-width:1599px) {
font-size: 14px;
}
@media (max-width:1399px) {
font-size: 12px;
}
}
.chart-select {
position: absolute;
right: 20px;
@media (min-width: 1400px) {
top:20px;
}
@media (min-width:1200px) and (max-width:1399px) {
top: 13px;
}
@media (max-width:1199px) {
top: 12px;
}
.selectric {
background-color: @bglighter!important;
}
.selectric .label {
@media (min-width: 1600px) {
font-size: 12px;
height: 36px!important;
line-height: 36px!important;
}
@media (min-width:1200px) and (max-width:1599px) {
font-size: 12px;
height: 30px!important;
line-height: 30px!important;
padding: 0 56px 0 15px;
}
@media (min-width:768px) and (max-width:1199px) {
font-size: 12px;
height: 30px!important;
line-height: 30px!important;
padding: 0 35px 0 15px;
}
@media (max-width:767px) {
font-size: 10px;
height: 30px!important;
line-height: 30px!important;
padding: 0 56px 0 15px;
}
font-weight: 600;
color:@main-font-color;
}
.selectric-items li {
@media (min-width: 768px) {
font-size:12px!important;
}
@media (max-width:767px) {
font-size: 10px!important;
}
}
}
}
<div class="donut-chart-content donut-chartx mb-lg-0 mb-3">
<div class="chart-title">Yatırım İstatistikleri</div>
<div class="chart-select">
<div class="select-basic">
<select name="" id="" class="form-select select-box">
<option value="">Aylık</option>
<option value="">Yıllık</option>
<option value="">Haftalık</option>
</select>
</div>
</div>
<canvas id="donutChart" width="300" height="300"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
Source:stackexchange.com