1

我想知道如何格式化饼图上的数据标签,使其最多显示 2 个十进制字符,并且从不显示尾随零,例如:

2 -> 2
2.0 -> 2
2.566 -> 2.57

换句话说,我在问如何设置dataLabelFormatString参数?我知道它正在使用sprintf,因此我尝试了 '%.2f' 和 '%g'。他们虽然没有解决我的问题。由于第一个使每个数字显示为十进制字符,另一个只是删除尾随零,但不能精确地工作,因为在这种情况下,您放在它前面的数字,例如 '%.2g' 是指总长度性格。

我不知道如何有效地将这两者结合起来(甚至可能吗?)。如何设置参数,例如,首先使用 '%.2f' 格式化,然后使用 '%g' 应该可以解决问题,但是该怎么做呢?

我可以在格式中“注入”一个 if/else,如果可以,那么如何?

否则,我能想到的唯一方法是,一旦绘制了情节,运行一个 jquery 脚本来获取标签并应用于parseFloat(label.toFixed(2))每个标签。

4

1 回答 1

2

为了结束这个话题,我在这里发布我的答案。我设法解决了这个问题,感谢jQuery. 在做客户端时,它似乎又是一个真正的救星。:)

我的处理方法与我在问题中提到的想法类似,即使用parseFloat(label.toFixed(2)). 虽然我以一种稍微颠倒的方式做到了。我决定将图表设置为label用于dataLabels参数。$.jqplot.postDrawHooks.push(...)图表绘制完成后,我使用绑定我的函数以执行。我的函数修改图例标签以显示名称,而不是我在将它们设置为数据数组之前计算的百分比值。

这种方法完全符合我的要求。对于那些感兴趣的人,请在此处找到我的 jsfiddle 显示解决方案。

如果有人有更好的解决方案,我非常渴望随时从我的答案中接受

于 2012-04-26T08:31:29.320 回答