Java AChartEngine渲染空值

Java AChartEngine渲染空值,java,android,achartengine,Java,Android,Achartengine,我有一个条形图,其中一些值设置为MathHelper.NULL_值,因此它们不会被渲染(应该在图表中保留空白位置)。但是,空值仍然呈现,看起来更像0.0,如下所示 如果我记录打印的值,我可以看到NULL_值出现在序列中: 10-23 09:50:24.206: DEBUG/ConsumptionChartBuilder(27359): x:16.0Y:1.0 10-23 09:50:24.206: DEBUG/ConsumptionChartBuilder(27359): x:17.0Y:3.

我有一个条形图,其中一些值设置为MathHelper.NULL_值,因此它们不会被渲染(应该在图表中保留空白位置)。但是,空值仍然呈现,看起来更像0.0,如下所示

如果我记录打印的值,我可以看到NULL_值出现在序列中:

10-23 09:50:24.206: DEBUG/ConsumptionChartBuilder(27359): x:16.0Y:1.0
10-23 09:50:24.206: DEBUG/ConsumptionChartBuilder(27359): x:17.0Y:3.0
10-23 09:50:24.206: DEBUG/ConsumptionChartBuilder(27359): x:18.0Y:1.7976931348623157E308
10-23 09:50:24.206: DEBUG/ConsumptionChartBuilder(27359): x:19.0Y:1.7976931348623157E308
10-23 09:50:24.216: DEBUG/ConsumptionChartBuilder(27359): x:20.0Y:6.0
10-23 09:50:24.216: DEBUG/ConsumptionChartBuilder(27359): x:21.0Y:1.7976931348623157E308
设置/取消设置最小Y值不会改变任何事情

我真的需要区分0和null,在条形图中保留点会导致一些更奇怪的渲染(空格的宽度不正确)

有人知道如何在AChartEngine条形图中不呈现空值吗?

编辑:复制它的一些代码

    XYMultipleSeriesDataset multipleSeriesDataset = new XYMultipleSeriesDataset();
    XYMultipleSeriesRenderer multipleSeriesRenderer = new XYMultipleSeriesRenderer();
    XYSeriesRenderer renderer= new XYSeriesRenderer();

    //set up renderer(s)
    renderer.setColor(Color.RED);
    multipleSeriesRenderer = new XYMultipleSeriesRenderer();
    multipleSeriesRenderer.setInScroll(true);
    multipleSeriesRenderer.setPanEnabled(false, false);
    multipleSeriesRenderer.setZoomEnabled(false, false);
    multipleSeriesRenderer.setAntialiasing(true);
    multipleSeriesRenderer.setShowLabels(true);
    multipleSeriesRenderer.setShowLegend(false);
    multipleSeriesRenderer.setYLabelsAlign(Paint.Align.LEFT);
    multipleSeriesRenderer.setApplyBackgroundColor(true);
    multipleSeriesRenderer.setMargins(new int[]{20, 3, 0, 0});
    multipleSeriesRenderer.setMarginsColor(Color.WHITE);
    multipleSeriesRenderer.addSeriesRenderer(renderer);
    multipleSeriesRenderer.setXLabelsAlign(Paint.Align.CENTER);
    //text size
    final float scale = getResources().getDisplayMetrics().density;
    multipleSeriesRenderer.setLabelsTextSize((int)(scale*10+0.5f));

    multipleSeriesRenderer.setXLabelsColor(Color.BLACK);
    multipleSeriesRenderer.setYLabelsColor(0,Color.BLACK);
    multipleSeriesRenderer.setShowAxes(false);
    multipleSeriesRenderer.setBackgroundColor(Color.TRANSPARENT);

    //set max and min of axis
    multipleSeriesRenderer.setYAxisMin(0);
    multipleSeriesRenderer.setYAxisMax(10);
    multipleSeriesRenderer.setXAxisMax(7.5);
    multipleSeriesRenderer.setXAxisMin(0.5);
    multipleSeriesRenderer.setBarSpacing(0.1);

    //set up series
    XYSeries series = new XYSeries("test");
    series.add(1, MathHelper.NULL_VALUE);
    series.add(2, 1);
    series.add(3, 6);
    series.add(4, MathHelper.NULL_VALUE);
    series.add(5, 0);
    series.add(6, 5);
    series.add(7, MathHelper.NULL_VALUE);
    multipleSeriesDataset.addSeries(series);

    //add x labels to replicate my original code
    multipleSeriesRenderer.setXLabels(0);
    multipleSeriesRenderer.addXTextLabel(1, "Mon");
    multipleSeriesRenderer.addXTextLabel(2, "Tue");
    multipleSeriesRenderer.addXTextLabel(3, "Wed");
    multipleSeriesRenderer.addXTextLabel(4, "Thu");
    multipleSeriesRenderer.addXTextLabel(5, "Fri");
    multipleSeriesRenderer.addXTextLabel(6, "Sat");
    multipleSeriesRenderer.addXTextLabel(7, "Sun");

    ((LinearLayout)findViewById(R.id.layout_graph)).addView(ChartFactory.getBarChartView(this, multipleSeriesDataset, multipleSeriesRenderer, BarChart.Type.DEFAULT));
编辑编号2:上述代码的屏幕截图:

使用空值:

如果我不添加空值,那么图形看起来会倾斜,如图所示,其中条形图相互接触


我建议不要添加
MathHelper.NULL\u值。只需添加其他条。

我认为您的意图是将那些MathHelper.NULL\u值条设置为空白,这样您就可以设置这些条的颜色。透明,这样如果您的意图是wt,它们将不可见。因此,如果您想显示这些条,您可以将值设置为{}空白。

显示一些代码,否则我们无法帮助。请注意,您添加的代码显示了一些内容,而屏幕截图显示了其他内容。感谢您的关注!真的很喜欢阿卡廷金!我添加了示例代码生成的有空和无空的屏幕截图。看来这解决了你的问题?抱歉没有。看看这些条现在是如何在它们之间没有间隙的,并且缺失点所在的空间宽度与空值的空间宽度有很大的不同?在这种情况下,您必须签出ACE代码并更新BarChart.java,以按照您需要的方式工作。当前的行为是由以前的用户请求引起的。您好..这对折线图是可能的吗?我使用这个,但只是得到点,没有看到点之间的线。所以有什么想法吗