我有一个图表,Y轴上的值可以变化很大。我唯一的信息是:
现在如果我只有很少的波动率非常低的值(让我们采取极端的)[0,0,0,0,0,0,0]
我得到了我的Y轴重复值。它看起来像:
|
1+
|
1+
|
1+
|
0+
|
0+
|
0+-----------------------------------------
我想要实现的是让jqPlot跳过重复值,可能只显示2个刻度--Y轴上的0,1(最底部和非常顶部)。
有什么想法吗?添加我的代码以供参考:
yaxis:{
label:'Count',
padMin: 0,
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions:{
formatString:'%d'
}
}
答案 0 :(得分:2)
这根本不是错误。 jqplot在其图形中使用某种缩放,因此当您说formatString:'%d'
时,您强制在y轴上显示int值。删除此行后,它将回退到1.3, 1.8, ...
左右等值。我想你想显示int值的tickInterval(我发现这篇文章在没有回复的情况下寻找同样的问题)。
猜猜这还不能完成
答案 1 :(得分:1)
如果您只需显示整数位数,则可以使用自定义字符串格式化程序:
tickOptions:{
formatString:'%d',
formatter: yourCustomFormater
}
'yourCustomFormatter'增强的地方默认为'$ .jqplot.DefaultTickFormatter':
var yourCustomFormatter = function (format, val) {
if (typeof val == 'number') {
if (!format) {
format = $.jqplot.config.defaultTickFormatString;
}
if (val % 1 === 0) {
return $.jqplot.sprintf(format, val);
} else {
//ignore items with not integer values
return '';
}
}
else {
return String(val);
}
};
但请注意,默认情况下,此格式化程序会影响条形图上的标签,除非您使用任何其他荧光笔插件。
答案 2 :(得分:0)
它是插件的一个错误,我可以在他们的演示代码上重现它,我自己也有同样的问题。
现在将图表设置为较小的维度,因为这是插件的当前缺陷。
希望这会有所帮助。答案 3 :(得分:0)
你可以用这个
axes:{
xaxis:{
numberTicks: 2
}
}
答案 4 :(得分:0)
对我来说,下面修正了这个问题: 1-参数tickOptions是tickOptions:{formatString:“%d”}我把它更改为tickOptions:{formatString:“%。2f”}因为如果两个元素四舍五入到相同的整数值,它的tick会显示两次,
2-我添加了额外的参数numberTicks:4让轴只有4个图
通过这两项更改,当前问题已修复,但可能会根据传递给图表的数据再次出现