在条形图AChartEngine中将%符号添加到Y轴标签

时间:2012-10-24 06:19:11

标签: java android achartengine

我正在使用Android应用程序并使用AChartEngine进行制图。条形图是基于来自服务器的动态数据绘制的。

Y轴标签设置为从0到100显示,标签没有显示11秒 0..10..20..30..40..60..70..80..90..100作为Y轴标签。是否可以设置自定义Y轴标签,使其在Y轴标题值后添加'%'符号,以便显示,

0%.. 10%.. 20%.. 30%.. 40%.. 60%.. 70%.. 80%.. 90%.. 100%作为Y轴标签值。

怎么做?

3 个答案:

答案 0 :(得分:1)

要在Y轴上设置自定义标签,只需使用以下方法:

mRenderer.addYTextLabel(10, "10%");
mRenderer.addYTextLabel(20, "20%");
...

另外,如果要隐藏默认标签,请执行以下操作:

mRenderer.setYLabels(0);

答案 1 :(得分:1)

您需要做的就是:享受;)

renderer.addXTextLabel(0, "0");
    renderer.addYTextLabel(10, "10%");
    renderer.addYTextLabel(20, "20%");
    renderer.addYTextLabel(30, "30%");
    renderer.addYTextLabel(40, "40%");
    renderer.addYTextLabel(50, "50%");
    renderer.addYTextLabel(60, "60%");
    renderer.addYTextLabel(70, "70%");
    renderer.addYTextLabel(80, "80%");
    renderer.addYTextLabel(90, "90%");
    renderer.addYTextLabel(100, "100%");

    renderer.setYLabels(0);

答案 2 :(得分:0)

我实际上并没有对AChartEngine做过很多,但是快速浏览源代码表明你可以扩展BarChart以完成你所追求的目标。

查看位于AbstractChart BarChart扩展XYChart的{​​{3}}方法,该方法又延伸AbstractChart。)

 /**
   * Makes sure the fraction digit is not displayed, if not needed.
   * 
   * @param label the input label value
   * @return the label without the useless fraction digit
   */
  protected String getLabel(double label) {
    String text = "";
    if (label == Math.round(label)) {
      text = Math.round(label) + "";
    } else {
      text = label + "";
    }
    return text;
  }

我会从一些天真的东西开始,看看它是如何运作的;例如只需在上面的结果上附加"%"

@Override protected String getLabel(double label) {
    return super.getLabel(label) + "%";
}

我唯一不确定的是,是否使用相同的方法为X轴生成标签。如果是这种情况,你可能需要做一些稍微聪明的事情,只为你感兴趣的轴启用它。