AChartEngine:帮助需要轴标签

时间:2013-09-12 11:30:16

标签: java android achartengine

我正在使用AChartEngine(我觉得它很酷!)来显示两个系列来比较它们的每日价值。不幸的是,有些问题我无法解决,即使我搜索了这个网站,我也找不到解决方案。如果有人能帮我一把,那就太好了。

如果查看屏幕截图,您会看到x轴有两个“标签轴”。一个是正​​确的显示日期,另一个是由整数组成,从0到8开始。我想删除这些整数。

其次,图表可以移动。因为我总是在显示有趣的数据部分,所以我没有必要这样做,我想禁用此功能。

这是我的配置代码:

    public XYMultipleSeriesRenderer getBarChartRenderer() {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(20);
    renderer.setChartTitleTextSize(18);
    renderer.setLabelsTextSize(18);
    renderer.setLegendTextSize(18);
    //renderer.setMargins(new int[]{20, 30, 15, 0});
    SimpleSeriesRenderer r = new SimpleSeriesRenderer();
    r.setColor(Color.YELLOW);
    renderer.addSeriesRenderer(r);
    r = new SimpleSeriesRenderer();
    r.setColor(Color.BLUE);
    renderer.addSeriesRenderer(r);
    return renderer;
}

private void setBarChartSettings(XYMultipleSeriesRenderer renderer, String sTitle, String sXAxisTitle, String sYAxisTitle, String[] aDates) {
    renderer.setChartTitle(sTitle);
    renderer.setXTitle(sXAxisTitle);
    renderer.setYTitle(sYAxisTitle);
    renderer.setXAxisMin(0);
    renderer.setXAxisMax(aDates.length + 1);
    renderer.setYAxisMin(0);
    renderer.setYAxisMax(40);
    renderer.setShowGridY(true);
    renderer.setShowGridX(true);
    renderer.setGridColor(Color.WHITE);
    renderer.setXLabelsColor(Color.WHITE);
    renderer.setYLabelsColor(0, Color.WHITE);
    renderer.setXLabelsAlign(Paint.Align.CENTER);
    renderer.setYLabelsAlign(Paint.Align.RIGHT);

    for (int i = 0; i < aDates.length; i++) {
        renderer.addXTextLabel(i + 1, aDates[i]);
    }
    //renderer.setXLabelsAngle(-30.0f);
    renderer.setXLabelsAlign(Paint.Align.CENTER);
    renderer.setXLabelsPadding(10);
}

谢谢!

Screenshot

2 个答案:

答案 0 :(得分:2)

听起来你需要禁用默认的数字标签:

renderer.setXLabels(0);

您还需要禁用平移和缩放操作:

renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);

答案 1 :(得分:0)

好的,这是我的解决方案:

    renderer.setChartTitle(sTitle);
    renderer.setXTitle(sXAxisTitle);
    renderer.setYTitle(sYAxisTitle);
    renderer.setXAxisMin(0);
    renderer.setXAxisMax(aDates.length);
    renderer.setYAxisMin(0);
    renderer.setYAxisMax(40);

    renderer.setXLabels(0);

    renderer.setPanEnabled(false, false);
    renderer.setZoomEnabled(false, false);

    renderer.setShowGridY(true);
    renderer.setShowGridX(true);
    renderer.setGridColor(Color.WHITE);
    renderer.setXLabelsColor(Color.WHITE);
    renderer.setYLabelsColor(0, Color.WHITE);
    renderer.setXLabelsAlign(Paint.Align.CENTER);
    renderer.setYLabelsAlign(Paint.Align.RIGHT);

    renderer.addXTextLabel(0, "");
    for (int i = 0; i < aDates.length; i++) {
        renderer.addXTextLabel(i + 1, aDates[i]);
    }
    renderer.setXLabelsAlign(Paint.Align.CENTER);
    renderer.setXLabelsPadding(10);
    renderer.setYLabelsPadding(10);

现在,图表按我希望的那样显示。