Хотите показать полученные данные на диаграмме "Пончик" с процентной меткой в JavaScript

Я новичок в JavaScript. Я хочу динамически отображать количество строк на диаграмме "Пончик". Данные получаются динамически в виде таблицы.

key: "results_callback",
    value: function results_callback(data)
    {
        data = data.tasks;
        if (Object.keys(data).length == 0)
        {
            $("div#no_more_results").show();
            $("div#no_more_results").html("<h6 style='color: #9c0a0d;'>No More Results</h6>"); 
            this.empty_results = true;
        } 
        else
        {
            
            $("table#recent thead").append("<tr style='color: #840a0c!important;'>
<th>H1</th>
<th>H2</th>
<th class='text-center'>H3</th>
<th class='text-center'>H4</th>
<th class='text-right'>H5</th>
<th class='text-right'>H6</th>
</tr>");
console.log(analysis.length)
data.forEach(function (analysis, i)

это код, в котором происходит получение данных и предоставление их в виде таблицы. Теперь то, что я сделал. Я использовал localstorage.setItem через ID в Index.html(1) Page

<script>
var table = document.getElementById("recent");
//var totalRowCount = table.rows.length; // 5
var tbodyRowCount = table.tBodies[0].rows.length; // 4
alert("total no of files are:" +tbodyRowCount)
console.log(tbodyRowCount)
//console.log(totalRowCount)
</script>
<script>
var x = {
count: [tbodyRowCount],
//count: [totalRowCount]
};
localStorage.setItem("tbodyRowCount", count)
//localStorage.setItem("totalRowCount", count)
//localStorage.getItem("tbodyRowCount")
</script>

Вот код для создания таблицы в index.html(1)

<table  id="recent" class="table table-striped table-responsive recent_table">
<thead ></thead>
<tbody ></tbody>
<tfoot ></tfoot>
</table>

Вот код для получения данных в index.html(2), где я вызываю данные на Doughnut Chart

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script type="text/javascript" src="https://unpkg.com/chart.js-plugin-labels-dv/dist/chartjs- 
plugin-labels.min.js"></script>
<!--<srcipt src = "https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin- 
datalabels/2.0.0/chartjs-plugin-datalabels.min.js"></srcipt> -->

<script>
var tcount = localStorage.getItem("tbodyRowCount")
//var tcount = localStorage.getItem("totalRowCount")
console.log(tcount)
</script>
<script>
// setup 
const data = {
  labels: ['Files', 'Urls'],
  datasets: [{
   // label: 'Weekly Sales',
    data: [tcount, 12],
    backgroundColor: [
      'rgb(254, 214, 10)',
      'rgb(255, 90, 48)'

      
    ],
    borderColor: [
      "#ffffff",         
    ],
    borderWidth: 1
  }]
};

// config 
const config = {
  type: 'doughnut',
  data,
  options: {
    plugins: {
        labels: {
            render: (args) => {
               
                    return ` ${args.percentage}%`
                
            }
        }
    }
  }
  
};

// render init block
const myChart = new Chart(
  document.getElementById('myChart'),
  config
);

Простое определение plugins.labels.render: 'percentage' должно помочь.

plugins: {
  labels: {
    render: 'percentage',
    precision: 2
  }
}

Пожалуйста, посмотрите на этот ответ и узнайте, как он работает.

Вернуться на верх