格式化jqPlot点标签,如:number(percent)

evs*_*ar3 3 javascript jquery jquery-plugins jqplot

这是我的第一个问题.

我需要格式化一个jqPlot图表点标签,如下所示:50(100%)格式化数字和显示百分比.

var s1 = [32, 28, 18, 6];

var ticks = ['0-20 kph', '21-40 kph', '41-60 kph', '61+ kph'];

plot1 = $.jqplot('bar-graph', [s1], {
    animate: !$.jqplot.use_excanvas,
    title: 'Gráficos de velocidade',
    captureRightClick: true,
    seriesColors: ['green', 'yellow', 'orange', 'red'],
    seriesDefaults: {
        renderer: $.jqplot.BarRenderer,
        pointLabels: {
            show: true,
            formatString: '%s (?%%)' 
        },
        rendererOptions: {
            varyBarColor: true
        }
    },
    axes: {
        xaxis: {
            renderer: $.jqplot.CategoryAxisRenderer,
            ticks: ticks
        }
    },
    highlighter: {
        show: false
    }
});
Run Code Online (Sandbox Code Playgroud)

在jsFinddle上:http://jsfiddle.net/evandroprogram/r3PUE/10/

谢谢.

Sat*_*jit 8

您可以实现一个函数,该函数返回正确的格式字符串,而不是显式设置格式.像这样的东西:

formatString: function(){return '%s (100%)';}()
Run Code Online (Sandbox Code Playgroud)

您可以在该函数内进行计算,以得出相应的字符串.

  • 您需要一个自定义格式化程序.我在你设置的jsfiddle中做了一些改变,试试吧.累计百分比值留给您.编辑:小提琴没有得到保存,抱歉.所以这是格式化程序的代码.把这个放在文件就绪电话之前.(function($){$ .jqplot.LabelFormatter = function(format,val){return val +'('+(val/totalMarkers*100)+'%';};})(jQuery);然后使用以下:pointLabels:{show:true,formatString:'%s(%%)',formatter:$ .jqplot.LabelFormatter}, (2认同)