1

我正在使用 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);
}

谢谢!

截屏

4

2 回答 2

2

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

renderer.setXLabels(0);

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

renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
于 2013-09-17T13:25:23.357 回答
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);

现在,图表按我希望的方式显示。

于 2013-10-26T13:51:52.393 回答