具有非零轴最小值的 sencha gxt 堆积条表现不正确

我正在构建一个堆积条形图,但是当我为轴指定一个最小值时,条形图的渲染会变形,并且轴比例/步长是错误的。然而,我添加的系列确实按预期工作。

这是初始图表:

http://img2.mukewang.com/64263a6c0001f8e715720622.jpg

当我向轴提供最小值/最大值时:


NumericAxis<MarketDataDetailsDecorator> axis = new NumericAxis<>();

axis.setPosition(Chart.Position.BOTTOM);

axis.setMinimum(995); // only this line

axis.setMaximum(1016);// and this line get added

http://img4.mukewang.com/64263a7a0001273115690635.jpg

您可以看到条形图适用于完全不同的值,但蓝线仍然正确。此外,轴以非线性方式递增:995,997,999、1001,1003,1006,1008、1010、1012、1014,1016

这是一个错误,还是两个 - 还是我在 api 中遗漏了什么?

这是突出问题的要点: https://gist.github.com/NimChimpsky/b4dc3dddc629ffefc7be2469eaa87d3a

我正在尝试显示放大版本的条形图,值范围为 1002.5 - 1005.5,第一个图表是正确的,但第二个图表似乎是随机分配值?


慕侠2389804
浏览 95回答 1
1回答

尚方宝剑之说

我用这个条形图以及我本地的 OP's gist 进行了测试。非零轴最小值问题这绝对是绘制逻辑的错误(相同的问题,但在 extjs 上)。忽略值的变化,这也给这个问题增加了进一步的麻烦,假设我们将底轴的值maximum更新为,如果绘制图表上条形图的原始高度应该是,它将减少到(derived from )。minimumnhh - nh * (h-n)/h例如;在这里h ~= 1000, 和n = 500, 所以我们看到绘制的条的无效高度是1000 - 500 = 500, 所以50%条的长度...这里h ~= 1000, 和n = 750, 和1000 - 750 = 250,25%并且以 OP 的示例h ~= 1000, 和n = 995, 因此我们看到极短的0.5%长度条。可悲的是,我无法仅通过用户可用的方法修复此问题,而无需访问 中的糟糕代码BarSeries,即使这样做维护起来也很麻烦,而不是修改第 3 方非开源代码的最佳选择。我建议创建一张到这家公司的票...超出轴范围的数据问题当底部轴的范围减小到 时[95-105],行为变得不稳定,条形图堆积在 x 轴后面。所以看起来当数据超出范围时,就会出现这种错误,图表上的数据集没有固有的隐藏/过滤逻辑。轴标签步骤不一致问题这似乎是使用默认设置进行步长计算近似的问题,即10 steps(实际上还有其他逻辑,但除非使用了一些更多的自定义设置,否则它将是10)。如果您给出一个手动范围,并且如果(max - min) % 10 != 0,那么由于步骤计算的近似值,您将遇到这样的问题。例如,让我们使用[90-115], with max - min = 25,这会产生以下问题;如果你只是做数学;step = (max - min) / 10 = 25 / 10 = 2.5标签的价值;90 + (2.5 x 0) = 9090 + (2.5 x 1) = 92.5 ~= 9390 + (2.5 x 2) = 9590 + (2.5 x 3) = 97.5 ~= 98...所以这只是范围和默认步数之间的不匹配。您可以通过使用自定义步长量来调制它,axis.setSteps()在底部轴上使用一个将平均划分该值的值max - min。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java