【问题标题】:AChartEngine: Help needing with axis labelsAChartEngine:需要轴标签的帮助
【发布时间】:2013-09-12 11:30:16
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: java android achartengine


    【解决方案1】:

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

    renderer.setXLabels(0);
    

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

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

    【讨论】:

    • 嗨,丹,这有助于在附加标签消失的情况下。仍然缺少的是标签位于两个条的中间。基本上,日期标签对应于一对条,因此我希望它们的刻度位于两个条之间。有什么想法吗?
    【解决方案2】:

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

        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);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2012-05-23
      • 2012-07-30
      • 1970-01-01
      相关资源
      最近更新 更多