Android Achartengine条形图之间的空间

时间:2014-02-19 09:16:17

标签: android achartengine

过去6个月我在android项目中工作,现在我需要在android中创建图形我用过achartengine lib,一切都很好,我能够在视觉上得到图形,问题是我不能给它们之间的空间bar graph.Can任何一个plz指南。我已经在这里发布了我的条形图代码。

protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
     XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

     renderer.setMarginsColor(Color.parseColor("#ffffff"));
     renderer.setXLabelsColor(Color.BLACK);
     renderer.setYLabelsColor(0,Color.BLACK);
     renderer.setPanEnabled(false, false);
     renderer.setZoomEnabled(false, false);

     renderer.setBarWidth(75);
     renderer.setApplyBackgroundColor(true);

     int length = colors.length;
     for (int i = 0; i < length; i++) {
       SimpleSeriesRenderer r = new SimpleSeriesRenderer();
       r.setColor(colors[i]);
      // r.setChartvalueAngle(-90);
    //           r.setChartValuesSpacing(60);
           renderer.addSeriesRenderer(r);
           renderer.setBarSpacing(0.5);
         }
         return renderer;
       }
    protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<int[]> values) {
         XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
         int length = titles.length;
         for (int i = 0; i < length; i++) {
           CategorySeries series = new CategorySeries(titles[i]);
           int[] v = values.get(i);
           int seriesLength = v.length;
           for (int k = 0; k < seriesLength; k++) {
             series.add(v[k]);
           }
               dataset.addSeries(series.toXYSeries());
         }
         return dataset;
    }
    protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,int labelsColor) {
         renderer.setChartTitle(title);
         renderer.setYLabelsAlign(Align.RIGHT);
         renderer.setXTitle(xTitle);
         renderer.setYTitle(yTitle);
         renderer.setXAxisMin(0);
         renderer.setXAxisMax(xMax);
         renderer.setYAxisMin(yMin);
         renderer.setYAxisMax(yMax);
         System.out.println("getting bar width----" +renderer.getBarSpacing());
         renderer.setOrientation(Orientation.HORIZONTAL);
         renderer.setShowLabels(true);
         renderer.setAxesColor(axesColor);
         renderer.setLabelsColor(labelsColor);
         renderer.setPanEnabled(false, false);  
         renderer.setInScroll(false);
         renderer.setZoomEnabled(false);
    }

1 个答案:

答案 0 :(得分:1)

您可以使用setBarSpacing方法。引用documentation

  

以条形图设置条形之间的间距。仅适用于酒吧   图表。这是条宽的系数。例如,如果你   希望间距为条宽的一半,将此值设置为0.5。

例如:

renderer.setBarWidth(30);
renderer.setBarSpacing(0.5);

这将生成宽度为30px的条形,条形之间的间距为15px。如果我没记错的话,这些是像素而不是dp,所以你可能需要将dp转换为px以保持多个屏幕密度的一致性。

我希望这很有帮助。让我知道它是否适合你;)