我用achartengine开发了一个浮动条形图 . 图表需要显示非零图表值 . 即零图表值在Y轴上为零,客户希望它们被删除 . 我没有在api中看到只删除一个的方法 . 代码附有截图 . 所有帮助表示赞赏 . 谢谢!

图片在此链接:

{
public GraphicalView getChart(Context context, double[] minValues, double[] maxValues, String [] barLabels, String chartTitle) {

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    RangeCategorySeries series = new RangeCategorySeries("");
    int length = minValues.length;
    double min=0, max=0;
    for (int k = 0; k < length; k++) {  
       //System.out.println("series:"+minValues[k]+" "+maxValues[k]); 
       min = Double.parseDouble(df2.format(minValues[k]));
       max = Double.parseDouble(df2.format(maxValues[k]));
       series.add( min, max);   

       }
    dataset.addSeries(series.toXYSeries());
    int[] colors = new int[] { Color.CYAN };
    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
    setChartSettings(renderer, chartTitle, "", "Strokes Gained", 0.5, barLabels.length+1, (yMin), yMax, Color.GRAY, Color.LTGRAY);

    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    int width = display.getWidth();  // deprecated
    //int height = display.getHeight();  // deprecated
    //System.out.println("width1:"+width+" "+height);


    LayoutParams params = layout.getLayoutParams();
    int height = params.height;
    //System.out.println("width2:"+width+" "+height+" "+params.width+" "+params.height);
    layout.setLayoutParams(new LinearLayout.LayoutParams((int)(width*.95), height));

    //int height = display.getHeight();  // deprecated

    renderer.setPanEnabled(false, false);

    renderer.setBarSpacing(0.5);
    renderer.setXLabels(0);
    renderer.setYLabels(10);
    for (int i=0;i<barLabels.length;i++)renderer.addXTextLabel(i+1, barLabels[i]);
    renderer.setInScroll(true);

    renderer.setMargins(new int[] {30, 70, 10, 0});
    renderer.setYLabelsAlign(Align.RIGHT);
    renderer.setShowGrid(true);
    renderer.setPanLimits(new double[] { -10, 20, -10, 40 });
    renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });

    XYSeriesRenderer r = (XYSeriesRenderer) renderer.getSeriesRendererAt(0);
    r.setShowLegendItem(false);
    r.setDisplayChartValues(true);
    r.setChartValuesTextSize(ChartValuesTextSize);  // change to 20
    r.setChartValuesSpacing(3);
    r.setGradientEnabled(true);
    r.setGradientStart((yMin), Color.RED);
    r.setGradientStop(yMax, Color.GREEN);    

    r.setChartValuesFormat(dfvalues);


    return ChartFactory.getRangeBarChartView(context, dataset, renderer, Type.DEFAULT );
  }