jqPlot对齐不同y轴的零

jqPlot aligning zeroes for different y-axes

本文关键字:对齐 jqPlot      更新时间:2023-09-26

jqPlot中,我在图中呈现了两个系列。它们显示不同的数据,以不同的单位测量,因此它们都有自己的y轴(yaxisy2axis)。

jqPlot自动构造两个y轴以适应数据的范围。这没关系——我不想手动设置轴min, max, ticks,因为数据的范围可能会有很大的变化。

但是,我想将两个y-axes0记号对齐到同一级别。这可能吗?

注:人们可能会争辩说,没有必要将0° C温度与0 ms^-1风速对齐,因为这些值之间没有数学关系。但如果是这样的话,它看起来确实要好得多,而好看是图表的全部意义:)

测试示例:

var data1 = [[0, 0], [3, 50]];
var data2 = [[0, 0], [3, -50]];
$.jqplot('chart', [data1, data2], {
  series: [
    { yaxis: 'yaxis' },
    { yaxis: 'y2axis' },
  ]        
});

我认为这肯定是jqplot中的一个bug。

请看这三个小提琴[1]、[2]和[3]。第一个是从jqplot上一个版本中的示例中提取的。第二个显示默认模式,禁用forceTickAt0和alignTicks。最后,第三个是相同的原始数据,但将第一个序列中的第二个数据值更改为负值。

您可以在第一个示例中看到零是如何对齐的。然而,在第三个示例中,轴不再对齐,尽管所有设置保持不变。

您可以尝试在jqplot问题页面中为此提交问题。

同时,为了解决您的问题,您可以通过向值添加偏移量来解决这个问题,使所有值都变为正,然后重写轴标签以显示偏移量差异。你可以在这里看到一个例子。然而,恐怕这仍然不是你想要实现的目标。