jqPlot饼图上如何展示百分比和数值

8
我正在使用jqPlot和jqplot.PieRenderer尝试显示一个饼图。在标签上,我想显示value(percent)。文档说你可以传递dataLabel的标签类型数组(来源),然而,在dataLabelFormatString选项中放置%d%%(表示百分比)和%d(表示值)最终什么都不显示。
有什么想法吗?
{ 
    seriesDefaults: {
        renderer: jQuery.jqplot.PieRenderer, 
        rendererOptions: {
            showDataLabels: true,
            dataLabels: ['value', 'percent'],
            dataLabelFormatString: "%d %d%%",
            sliceMargin: 4,
            fill: false
        }
    }, 
    legend: { show:true, location: 'e' }
}
2个回答

20

我对那些文档的理解有所不同。它是选项'value'、'percent'、'label'或标签数组,而不是选项数组。要做你想做的事情,你需要将数据标签创建为一个真正的标签数组。

例如:

data = [
    ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
    ['Out of home', 16],['Commuting', 7], ['Orientation', 9]
];

var total = 0;
$(data).map(function(){total += this[1];})

myLabels = $.makeArray($(data).map(function(){return this[1] + " " + Math.round(this[1]/total * 100) + "%";}));

可以在这里查看示例fiddle:此处


非常感谢!我希望我能为您提供不止一个声誉值。 - Snuffleupagus
太好了 - 我也有点被文档搞糊涂了,试图实现一个选项数组 - 你解决了它 - 超级感谢。 - YonoRan

0

使用

 formatter: function(label, series){
                        return '<div style="font-size:14pt;text-align:center;padding:2px;color:white;">'+Math.round(series.percent)+"%<br/>" + series.data[0][1] +'</div>';
                    },

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接