对于以下情况,我面临着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;
}
答案 0 :(得分:0)
这是我自己问题的解决方案。
问题: shinoby-version: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]}
now: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]}
结束条目[02:00,0]是这里的虚拟条目。并且不会弄乱输出,因为VALUE在这里设置为零。
输出:#
答案 1 :(得分:0)
我很高兴你能够解决你的问题。
如您所见,数据本身会对绘制列的宽度产生重大影响。
当图表计算绘制列的宽度时,除其他外,它会查看相关轴的每个数据值之间的距离。它将选择两个数据点值之间的最短距离,并以此为基础计算列宽。除了数据点值具有变化的频率之外,这种方法通常产生具有一致宽度的均匀间隔的列。例如,如果您的大多数数据点与其相邻的数据点相距9小时的x值,但是一对x值相隔仅2小时,则可能会遇到此类问题。此外,DateTime轴与列或条形图一起使用时也会导致列宽或条宽变化,因为日期频率通常会有所不同。例如,对于月度数据,某些月份为31天,而有些月份为30,28或29。
将来我们可能会提供额外的api方法来允许手动设置列宽。我当然不能确定何时可以使用这种api。与此同时,如果您仍然遇到柱形图问题,请联系info@shinobicontrols.com与我们联系。在这种情况下,请尽可能包含代码示例,以帮助我们快速了解您的问题。
谢谢和亲切的问候, 启
免责声明:我为Shinobicontrols工作。