jqplot - jqplot Y轴重新缩放
问题描述
我正在使用 jqplot 来表示整个时间序列中的几个参数。所以我有一个 Xaxis 代表时间和几个 Yaxes(yaxis、y2axis、y3axis、y4axis 等)。每个参数都有不同的单位(温度、电压、电流、压力等),所以所有的 Yaxes 都设置为自动的最小值和最大值,因为我不知道服务器会提供什么值。我正在使用 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)设置新的最大值时,一切都很好。
但是,当我尝试设置任何其他轴的 max 参数时 - 例如 y4axis 出现问题并且该最大值具有与此不同的值,用户被输入。
这是来自 console.log 输出的调试
50
12
axes: y4axis: {max: "12"}
350
有任何想法吗?
解决方案
因此,如果有人问同样的问题,我已经找到了解决方案。
诀窍是您需要为绘图中的所有 Y 轴设置最小和最大参数。所以我准备了具有原始值的最小/最大轴对象:
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 min/max 参数:
var new_max=prompt("Please enter max value?");
plotOptions.axes.y2axis.max=parseFloat(new_max);
最后重新绘制它:
plot.replot(plotOptions);
推荐阅读
- javascript - 引导警报悬停暂停
- ros - 无法连接多个 USB 3.0 Basler 相机
- javascript - Is this javascript code susceptible to DOM based xss
- c# - 在 Unity 中构建时,除了“仅脚本构建”之外,还有其他方法可以缩短构建时间吗?
- python - 是否可以将文件保存在 Hadoop 中而不将它们保存在本地文件系统中?
- arrays - 使用vba将基于标准的范围从一张纸复制到另一张纸
- java - GC CMS Final Remark - 耗时太长
- swift - 在 Xcode 项目中实现 Cordova 插件
- sql - 将来自 LISTAGG (Oracle) 的 CSV 字符串分解为正确排列的列
- sql - Extract hourly data from process data base with excel and ms query