Как отобразить значения в областях графика jqplot вместо процентов - PullRequest
7 голосов
/ 03 апреля 2012

У меня есть код JavaScript как:

var plot1 = jQuery.jqplot ('chartdiv', [data], 
{ 
  seriesDefaults: {
        // Make this a pie chart.
        renderer: jQuery.jqplot.PieRenderer, 
        rendererOptions: {
          // Put data labels on the pie slices.
          // By default, labels show the percentage of the slice.
          showDataLabels: true,
          dataLabels: 'value'
        }
  }, 
  legend: { show:true, location:'e'}
});


var handler = function(ev, gridpos, datapos, neighbor, plot) { 
    if (neighbor) { 
        alert('x:' + neighbor.data[0] + ' y:' + neighbor.data[1]); 
    }
}; 

$.jqplot.eventListenerHooks.push(['jqplotClick', handler]); 

Теперь с помощью dataLabels: 'value' я могу показывать значения, но показанное значение равно 51 вместо 50.667. Значение округляется. Но мне нужно показать точное значение. Как это сделать?

Мой второй вопрос: когда у меня есть указатель мыши на любой области графика, я хочу что-то показать. Это можно было бы сделать с помощью jqplotDataMouseOver. Но как это использовать? Спасибо заранее. Пожалуйста, немедленно срочно.

1 Ответ

10 голосов
/ 07 апреля 2012

Ваш первый вопрос может быть решен с помощью свойства dataLabelFormatString:

seriesDefaults: {
        // Make this a pie chart.
        renderer: jQuery.jqplot.PieRenderer, 
        rendererOptions: {
          // Put data labels on the pie slices.
          // By default, labels show the percentage of the slice.
          showDataLabels: true,
          dataLabels: 'value',
          dataLabelFormatString:'%.4f'
        }
  }, 

. '%.4f' покажет 4 знака после запятой.

Ваш второй вопрос сложнее. Очевидно, что события на гистограммах не совсем сглаживаются с помощью jqplot.Но последнее предложение в этой ссылке работает для меня:

$('#chartdiv').bind('jqplotDataMouseOver', function (ev, seriesIndex, pointIndex, data) { alert('series: '+seriesIndex+', point: '+pointIndex+', data: '+data)}); 

Вот jsfiddle , не забудьте кэшировать файлы JS, так как jqplot не позволяет хотлинкинг.

...