我使用jqplot表示一段时间内连续的几个参数。所以我有一个X轴表示时间和几个Y轴(yaxis,y2axis,y3axis,y4axis等)。每个参数都使用不同的单位(温度、电压、电流、压力等),所以所有的Yaxes都设置为auto作为min和max,因为我不知道来自服务器的值是什么。我使用ajax request填充数据,然后使用新的点实时更新系列。
所以现在我希望用户能够手动设置任意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)设置新的最大值时,一切都很好。
但是,当我尝试设置任何其他轴的最大参数时-例如,y4axis出错了,而这个最大值与这个值不同,用户就会输入。



这是来自console.log输出的调试
50
12
axes: y4axis: {max: "12"}
350有什么想法吗?
发布于 2018-12-03 13:56:34
所以我找到了一个解决方案,如果有人问同样的问题。
诀窍是需要为绘图中的所有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);https://stackoverflow.com/questions/53581261
复制相似问题