【问题标题】:how to set the Shinobicharts column width fixed in Android?如何在 Android 中设置固定的 Shinobicharts 列宽?
【发布时间】:2016-07-13 21:43:51
【问题描述】:

在以下情况下,我遇到了一个关于 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 显示越来越大和列宽。

如果适配器当天有 3 个条目,则每个列的宽度都显示为截图 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;
    }

【问题讨论】:

  • 请在问题本身中发布图片。
  • @AshishAhujaツ,为了保持干净,刚刚添加了链接.. 再见,你知道这里的问题以及解决方案
  • 我不了解android,很抱歉帮不上忙。但是,如果您可以在问题本身中添加图像,那就太好了。
  • @AshishAhujaツ,我试过了,但由于我没有太多的声望点,它不允许我。这也是。感谢您的快速响应。
  • 编辑自己的问题不需要声誉。只需点击“编辑”标签下的 android,然后编辑问题。

标签: android graph width bar-chart shinobi


【解决方案1】:

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

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

从下面的链接,了解到 shinobycharts 没有 api 来控制列(垂直条)的宽度(向下滚动并查看(涟漪在 2016 年 1 月 22 日发布))其积压项。

[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] }
现在:DataAdapter= {[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

【讨论】:

    【解决方案2】:

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

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

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

    未来我们可能会寻求提供额外的 api 方法来允许手动设置列宽。当然,我无法确切说明此类 API 何时可用。同时,如果您的柱形图仍然存在问题,请联系 info@shinobicontrols.com。在这种情况下,请尽可能提供代码示例,以帮助我们快速解决您的问题。

    感谢和亲切的问候, 启

    免责声明:我为 Shinobicontrols 工作。

    【讨论】:

      猜你喜欢
      • 2020-12-29
      • 2014-09-06
      • 1970-01-01
      • 2021-12-08
      • 2015-07-13
      • 2020-12-30
      • 1970-01-01
      • 2018-11-01
      • 2015-07-05
      相关资源
      最近更新 更多