在shinobi中使用多个BarSeries时,在栏之间填充

时间:2014-09-02 11:15:58

标签: android shinobi

作为my other question的后续内容,我仍然遇到了问题(条形图之间的大填充),但这次情景使用了不同的系列。 我正在使用不同的系列因为Shinobi的限制,如果你想要每个不同颜色的条,你需要使用不同的系列。请参阅here

我正在使用的代码如下:

        DataAdapter<Integer, Integer> dataAdapter3 = new SimpleDataAdapter<Integer, Integer>();
        dataAdapter3.add(new DataPoint<Integer, Integer>(3, 3));
        BarSeries ls3 = new BarSeries();
        ls3.setDataAdapter(dataAdapter3);
        BarSeriesStyle bss3 = ls3.getStyle();
        bss3.setAreaColor(Color.CYAN);

        DataAdapter<Integer, Integer> dataAdapter2 = new SimpleDataAdapter<Integer, Integer>();
        dataAdapter2.add(new DataPoint<Integer, Integer>(12, 2));
        BarSeries ls2 = new BarSeries();
        ls2.setDataAdapter(dataAdapter2);
        BarSeriesStyle bss2 = ls2.getStyle();
        bss2.setAreaColor(Color.GREEN);

        DataAdapter<Integer, Integer> dataAdapter1 = new SimpleDataAdapter<Integer, Integer>();
        dataAdapter1.add(new DataPoint<Integer, Integer>(1, 1));
        BarSeries ls1 = new BarSeries();
        ls1.setDataAdapter(dataAdapter1);
        BarSeriesStyle bss1 = ls1.getStyle();
        bss1.setAreaColor(Color.BLUE);

        DataAdapter<Integer, Integer> dataAdapter0 = new SimpleDataAdapter<Integer, Integer>();
        dataAdapter0.add(new DataPoint<Integer, Integer>(15, 0));
        BarSeries ls0 = new BarSeries();
        ls0.setDataAdapter(dataAdapter0);
        BarSeriesStyle bss0 = ls0.getStyle();
        bss0.setAreaColor(Color.YELLOW);

        NumberAxis xAxis = new NumberAxis();
        chart.setXAxis(xAxis);
        NumberAxis yAxis = new NumberAxis();
        chart.setYAxis(yAxis);
        yAxis.getStyle().setInterSeriesSetPadding(0.0f);
        yAxis.getStyle().setInterSeriesPadding(0.0f);

        chart.addSeries(ls3);
        chart.addSeries(ls2);
        chart.addSeries(ls1);
        chart.addSeries(ls0);

结果:

enter image description here

作为一方,还要注意条形未在Y轴上的正确值处对齐(0-> 0.8,1-> 1.2,2-> 1.8,3-> 2.7)

1 个答案:

答案 0 :(得分:1)

我已经运行了你的代码,我得到了完全相同的输出。解决方案是为每个条形系列设置堆栈ID相等。例如: ls3.setStackId(1); ls2.setStackId(1); .....

这应该有效。 谢谢, 启。

免责声明:我为ShinobiControls工作。