首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jqplot Yaxis重缩放

jqplot Yaxis重缩放
EN

Stack Overflow用户
提问于 2018-12-02 22:35:27
回答 1查看 87关注 0票数 0

我使用jqplot表示一段时间内连续的几个参数。所以我有一个X轴表示时间和几个Y轴(yaxis,y2axis,y3axis,y4axis等)。每个参数都使用不同的单位(温度、电压、电流、压力等),所以所有的Yaxes都设置为auto作为min和max,因为我不知道来自服务器的值是什么。我使用ajax request填充数据,然后使用新的点实时更新系列。

所以现在我希望用户能够手动设置任意Y轴的最小和最大值。所以我这样设置:

代码语言:javascript
复制
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输出的调试

代码语言:javascript
复制
50
12
axes: y4axis: {max: "12"}
350

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-03 13:56:34

所以我找到了一个解决方案,如果有人问同样的问题。

诀窍是需要为绘图中的所有Yaxis设置最小和最大参数。因此,我准备了具有其原始值的最小/最大轴对象:

代码语言:javascript
复制
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最小/最大参数:

代码语言:javascript
复制
var new_max=prompt("Please enter max value?");
plotOptions.axes.y2axis.max=parseFloat(new_max);

最后重新绘制它:

代码语言:javascript
复制
plot.replot(plotOptions);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53581261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档