【发布时间】:2012-06-13 09:15:03
【问题描述】:
我发现下面的帖子很有用
http://groups.google.com/group/jqplot-users/browse_thread/thread/1986...
我想获取数组中的所有 y 轴值或刻度...我的 目的是计算每个刻度中的位数和 找出出现频率最高的位数。 基于我计划截断y轴上的位数 刻度/值。 例如:如果大多数刻度有 6 位数字,则截断为 3 位数字 并将单词(以千计)附加到轴标签。
我怎样才能做到这一点?在下面的函数中,我可以得到一个刻度 一个……但我需要提前得到它们,这样我才能决定 截断数字的因素。请忽略带逗号的函数。它只是一个例子。
(function($) {
$.jqplot.tickNumberFormatter = function (format, val) {
if (typeof val == 'number') {
if (!format) {
format = '%.1f';
}
return numberWithCommas($.jqplot.sprintf(format, val));
}
else {
return String(val);
}
};
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}
@Boro:非常感谢您的回复。你能告诉我这条线到底是做什么的吗?
var ticks = $('.jqplot-' + axisName + '-tick');
同一行在我的代码中不起作用。我该如何使用它?
我可以用它在控件进入格式化程序之前将所有刻度推入一个数组吗?也就是说,能不能在控件进入下面的函数之前得到所有的刻度?
$.jqplot.tickNumberFormatter = function (format, val) {
以下代码在您的示例中表现出色。为什么它在我的不起作用:(
var axisName = 'yaxis';
var count = 0;
var ticks = $('.jqplot-' + axisName + '-tick');
for (count = 0; count <= ticks.length; count++)
{
console.log($(ticks[count]).text());
}
【问题讨论】: