我想知道如何格式化 饼图上的数据标签,以便显示最多2位小数字符,并且 never 显示尾随零,例如:
2 -> 2
2.0 -> 2
2.566 -> 2.57
换句话说,我问如何设置dataLabelFormatString
参数?
我知道它正在使用sprintf
,因此我尝试了'%。2f'和'%g'。但他们并没有解决我的问题。由于第一个使每个数字显示为十进制字符,另一个只是删除尾随零但不能精确地工作,因为在这种情况下你放在它前面的数字,例如。 '%。2g'指的是角色的总长度。
我不知道如何有效地将这两者结合起来(甚至可能吗?)。如何设置参数,例如,使用'%。2f'然后使用'%g'进行首次格式化,它应该可以解决问题,但该怎么做?
我是否可以在格式中“注入”if / else,如果是,那么如何?
否则,我能想到的唯一方法是,一旦绘制了绘图,就运行一个jquery脚本来获取标签并在每个标签上应用parseFloat(label.toFixed(2))
。
答案 0 :(得分:2)
要结束此主题,我在此处发布我的回答。由于jQuery
,我设法解决了这个问题。在做客户端方面,它似乎再次成为现实生活中的救星。 :)
我的问题与我在我的问题中提到的想法相似,即使用parseFloat(label.toFixed(2))
。虽然我是以略微倒置的方式做到的。我决定将图表设置为label
用于dataLabels
参数。在图表完成绘制后,我使用$.jqplot.postDrawHooks.push(...)
绑定我的函数来执行。我的函数修改图例标签以显示名称而不是我在将它们设置为数据数组之前计算的百分比值。
这种方法完全符合我的要求。 To those interested, please find my jsfiddle showing the solution here.
如果某人有更好的解决方案我非常希望随时将答案从我的答案移出。