2

我有这样的饼图
,它的数据标签带有值 ["", 20, 1, 3, "", "", "", "", 4, 6, 6],它显示所有值没有任何问题,除了它没有显示值 1。我该如何修复它或者它是 jqPlot 错误?

在此处输入图像描述

我的代码是:

function getPieChart(res) {
    var data = [];
    $.each(res, function (ind, resData) {
        data.push([resData.Stage, resData.Count]);
    });
    var dataLbl = [];
    for (var i = 0; i < data.length; i++) {
        if (data[i][1] != 0) {
            dataLbl.push(data[i][1]);
        }
        else {
            dataLbl.push('');
        }
    }
    var piePlot = jQuery.jqplot('pie-chart', [data],
      {
          seriesDefaults: {
              renderer: jQuery.jqplot.PieRenderer,
              rendererOptions: {
                  showDataLabels: true,
                  dataLabels: dataLbl,
                  diameter: 250,
                  dataLabelPositionFactor: 0.5,
                  sliceMargin: 3,
                  color: '#DCDCDC'
              },
              shadow: false
          }
      }
    );
}
4

3 回答 3

4

我不知道你是否可以解决这个问题,但问题是 dataLabelThreshold 设置

默认情况下,它的值为 3,因此不会显示低于该值的任何内容

尝试像这样将其值设置为零(范围为 0-100)

rendererOptions: { 
   dataLabelThreshold: 0, 
   showDataLabels: true, 
   dataLabels: labels, 
   dataLabelFormatString: "%s" 
}
于 2013-09-06T14:12:32.783 回答
1

默认情况下,标签将显示百分比,但如果您将dataLabels属性设置为label传入数据 [] 的标签,则应显示。将标签放入新数组的代码是不必要的。请参阅文档中的第三个示例:http ://www.jqplot.com/tests/pie-donut-charts.php

 var piePlot = jQuery.jqplot('pie-chart', [data],
  {
      seriesDefaults: {
          renderer: jQuery.jqplot.PieRenderer,
          rendererOptions: {
              showDataLabels: true,
              dataLabels: 'label', //specify to use labels
              diameter: 250,
              dataLabelPositionFactor: 0.5,
              sliceMargin: 3,
              color: '#DCDCDC'
          },
          shadow: false
      }
  }
);

此外,您似乎已经用data. 我认为这不应该进一步包装在一个数组中。

var piePlot = jQuery.jqplot('pie-chart', data,
      {
        //ommitted
      }
于 2013-05-23T08:46:47.210 回答
0

其他人已经说过您需要将 dataLabelThreshold 设置为 0。我想补充一点,您还应该将 dataLabelPositionFactor 设置为 1.1 之类的值,以使该值清晰可见。

rendererOptions: { 
   dataLabelThreshold: 0, 
   dataLabelPositionFactor: 1.1,
}

请参阅相关问题。这里

于 2019-01-08T00:48:49.090 回答