如何设置固定在 Android 的 Shinobicharts 列宽?

how to set the Shinobicharts column width fixed in Android?

在以下情况下,我遇到了 ShinobiCharts[Android] 列宽的奇怪问题:

XAxis : Date <br>
YAxis : Double

输入 1:DataAdapter= {[00:00,0.0], [02:00,360] , [24:00,0.0] }
输出:在输出#1 屏幕截图下方显示了预期的列宽机智条。

输入 2:DataAdapter={[00,0.0], [15:150.0], [24:00,0.0]}
输出:屏幕截图 2 显示了一个柱子,柱子的长度超出了该范围。

输入 3:DataAdapter={[00,0.0], [23:00,360.0] , [24:00,0.0]}
输出:屏幕截图 3 显示越来越大和列宽。

如果当天adapter全部有3个entry,那么每个列的宽度都如截图1所示。

问题是:我只是想知道我在这里遗漏了什么,以及我应该使用什么 api 来将此列宽度限制为仅在适合的范围内显示?

请帮帮我。

private Series createSeries(@NonNull final DataAdapter<Date, Integer> dataAdapter, @NonNull final String title, final int color) {
        final ColumnSeries series = new ColumnSeries();
        series.setDataAdapter(dataAdapter);
        series.setShownInLegend(true);
        series.setTitle(title);
        series.setSelectionMode(Series.SelectionMode.POINT_MULTIPLE);
        ColumnSeriesStyle style = series.getStyle();
        style.setAreaColor(color);
        style.setAreaColorGradient(color);
        style.setLineColor(color);
        series.setStackId(1);
        return series;
    }

这是我自己的问题的解决方案。

问题: shinoby-版本:shinobicharts-android-premium-1.7.2-0.jar

从下面link,得知shinobycharts没有api来控制列(竖条)的宽度(向下滚动查看(rippling posted this 22 January 2016 )) 它的积压项目。

[shinobicontrols.com/forum/shinobicontrols/2013/4/how-are-the-widths-of-columns-set]

根据附上的截图,如果X轴上每天午夜12点到凌晨4[12-4]或[00-04]第一个分区没有入口点,则宽度该列无法控制。

解决方法: 作为解决方法或适当的修复,如果没有实际数据,我只是在第一个分区中添加了一个虚拟条目。最终的适配器如下所示。

如果显示第一个分区的实际数据,即屏幕截图中的 [12-4]。无需在此处添加虚拟对象:
早些时候:DataAdapter= {[00:00,0.0],[02:00,360],[24:00,0.0] }
现在:数据适配器= {[00:00,0.0],[02:00,360],[24:00,0.0] } //与之前没有变化。

如果没有:
早些时候:DataAdapter={[00,0.0], [15:150.0], [24:00,0.0]}
现在:DataAdapter= {[00:00,0.0],[02:00,0],[15:150.0],[24:00,0.0] }

end entry [02:00, 0] 是这里的虚拟条目。并且不会弄乱输出,因为此处的 VALUE 设置为零。

输出:#

Without entry in the first partition 12-4

With entry in the first partition 12-4

很高兴您能够解决您的问题。

如您所见,数据本身会对绘制列的宽度产生重大影响。

当图表计算绘制列的宽度时,除其他外,它会查看相关轴的每个数据值之间的距离。它将选择两个数据点值之间的最短距离,并以此为基础计算列宽。这种方法通常会产生具有一致宽度的均匀间隔的列,除非数据点值具有不同的频率。例如,如果大多数数据点的 x 值与其相邻数据点相差 9 小时,但一对 x 值仅相隔 2 小时,则您可能会遇到此类问题。此外,日期时间轴在与柱形图或条形图一起使用时也会导致不同的柱形或条形宽度,因为日期频率通常是变化的。例如,对于每月数据,有些月份有 31 天,有些月份有 30、28 或 29。

将来我们可能会提供额外的 api 方法来允许手动设置列宽。我当然不能给出任何确切的指示,说明这种 api 何时可用。同时,如果您的柱形图仍然遇到问题,请通过联系 info@shinobicontrols.com 与我们取得联系。在这种情况下,请尽可能提供代码示例,以帮助我们快速处理您的问题。

谢谢和亲切的问候, 凯

免责声明:我为 Shinobicontrols 工作。