2015-08-10 3 views
1

В методе update() вы можете использовать метод update() для изменения знака изменения, но не изменения метки панели или изменения порядка штрихов.Настройка порядка штрих-кода Chartjs после построения диаграммы диаграммы

Что я хочу сделать, это отсортировать порядок штрих-кода по метке после добавления новой строки в диаграмму myBarChart.addData().

Вот моя попытка решить проблему, которая терпит неудачу:

 this.myBarChart.addData([1], tickString); 
     // TODO: need to sort here by tick string when adding new one! 
     this.myBarChart.datasets[0].bars = _.sortBy(bars, function(bar){ 

      return parseFloat(bar.label); // label example: '1.223', '1.44' 
     }); 

Вопрос: Если возможно, как сортировать бар по метке для chartjs диаграммы после гистограмма рисуется?

ответ

1

Вот как вы это делаете с помощью отдельной функции. Взято из How can I sort, insert in between and update full dataset in chartjs?

var MyBarChartMethods = { 
    // sort a dataset 
    sortByLabel: function (chart) { 
     // get data from chart elements (instead of messing up the actual data object) 
     var data = [] 
     chart.datasets.forEach(function (dataset, i) { 
      dataset.bars.forEach(function (bar, j) { 
       if (i === 0) { 
        data.push({ 
         label: parseFloat(chart.scale.xLabels[j]), 
         values: [bar.value] 
        }) 
       } else 
        data[j].values.push(bar.value) 
      }); 
     }) 

     // sort the data based on label 
     data.sort(function (a, b) { 
      if (a.label > b.label) 
       return 1; 
      else if (a.label < b.label) 
       return -1; 
      else 
       return 0; 
     }) 

     // update the chart elements using the sorted data 
     chart.datasets.forEach(function (dataset, i) { 
      dataset.bars.forEach(function (bar, j) { 
       if (i === 0) 
        chart.scale.xLabels[j] = data[j].label; 
       bar.label = data[j].label; 
       bar.value = data[j].values[i]; 
      }) 
     }); 
     chart.update(); 
    }, 
} 

и вы называете это так

MyBarChartMethods.sortByLabel(myBarChart) 

скрипку - http://jsfiddle.net/jk1k0g5u/

Смежные вопросы