AChartEngine条形图保证金问题

时间:2013-04-01 06:21:50

标签: android bar-chart achartengine margins

首先,这里是我的应用程序目前的链接:ds http://i50.tinypic.com/30skom0.jpg

在显示的两个图表中,我想摆脱条形图左边的边距。有什么想法吗?

以下是我的渲染器设置。我搜索过,无法找到有类似问题的人。看起来应该很简单......

private void drawBarChart(XYMultipleSeriesDataset dataset) {
    int marginT = 10;
    int marginL = 5;
    int marginB = 10;
    int marginR = 5;
    int[] margins = {marginT, marginL, marginB, marginR};

    ...

    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
    renderer.setOrientation(Orientation.VERTICAL);
    renderer.getSeriesRendererAt(0).setDisplayChartValues(false);
    renderer.getSeriesRendererAt(1).setDisplayChartValues(false);
    renderer.getSeriesRendererAt(2).setDisplayChartValues(false);
    renderer.setLabelsColor(Color.LTGRAY);
    renderer.setAxesColor(Color.BLACK);
    renderer.setYAxisMin(0);
    renderer.setMargins(margins);
    renderer.setYAxisMax(maxYVal);
    renderer.setYLabels(0);
    renderer.setXLabels(0);
    renderer.setXAxisMin(0);
    renderer.setXAxisMax(2);
    renderer.setZoomEnabled(false,false);
    renderer.setPanEnabled(false, false);
    renderer.setBarSpacing(-0.5);
    renderer.setShowAxes(false);
    renderer.setShowLabels(false);
    renderer.setShowLegend(false);

    ...

    display chart in view
}

protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    int length = colors.length;
    for (int i = 0; i < length; i++) {
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();
        r.setColor(colors[i]);
        renderer.addSeriesRenderer(r);
    }
    return renderer;
}

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:6)

偷偷摸摸。

我正在玩边缘因为我决定使用我自己的TextViews作为标题,因为它们渲染得比AChartEngine渲染的标题好得多。根据文档,它说明边际的工作如下:

margins - an array containing the margin size values, in this order: top, left, bottom, right

这就是我设置我的边距变量的原因如下:

int[] margins = {marginT, marginL, marginB, marginR};

事实证明,对于水平条形图,marginB控制左边距,marginT控制右边距。换句话说,所有边距必须顺时针旋转才能按预期工作。 (即更改右边距,更改'顶部'的边距;更改上边距,更改'左边'的边距;等等。)