我正在使用jqplot表示整个时间序列中的几个参数。所以我有一个Xaxis代表时间,还有几个Yaxes(yaxis,y2axis,y3axis,y4axis等)。每个参数都以不同的单位(温度,电压,电流,压力等)表示,因此所有Yaxes都设置为auto的最小值和最大值,因为我不知道服务器会得到什么值。我正在使用ajax请求填充数据,然后使用新点实时更新系列。
所以现在我希望用户能够为任何Y轴设置手动的最小值和最大值。所以我这样设置:
var axis_name="y2axis";
console.log(plot.axes[axis_name].max);
var new_max=prompt("Please enter max value?");
console.log(new_max);
var plotOptionsEval = "plotOptions = { axes: { "+axis_name+": { max: \""+new_max+"\" } } };";
eval(plotOptionsEval);
console.log(plotOptions);
plot.replot(plotOptions);
console.log(plot.axes[axis_name].max);
所以,当我为第一个轴(yaxis)设置新的最大值时,一切都很好。
但是,当我尝试设置任何其他轴(例如y4轴)的max参数时,出了点问题,并且max值与此值有一些不同。
这是从console.log输出进行的调试
50
12
axes: y4axis: {max: "12"}
350
有什么想法吗?
答案 0 :(得分:0)
因此,如果有人提出相同的要求,我已经找到了解决方案。
诀窍是您需要为绘图中的所有Yaxis设置最小和最大参数。因此,我准备了带有原始值的最小/最大轴对象:
var plotOptions = {
axes: {
yaxis: {min: 11.568, max: 11.582}
y2axis: {min: 11.688, max: 11.702}
y3axis: {min: 6.390000000000001, max: 6.53}
y4axis: {min: -300, max: 50}
}
}
下一步,在plotOptions对象中设置所需的Yaxis最小/最大参数:
var new_max=prompt("Please enter max value?");
plotOptions.axes.y2axis.max=parseFloat(new_max);
最后重新绘制它:
plot.replot(plotOptions);