4

我正在开发一个 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 轴标签值。

怎么做??

4

3 回答 3

1

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

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

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

mRenderer.setYLabels(0);
于 2012-10-24T06:49:04.350 回答
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);
于 2012-10-24T07:38:01.517 回答
0

我实际上并没有用 AChartEngine 做很多事情,但是快速浏览一下源代码表明你可以扩展BarChart来完成你所追求的。

看一下getLabel(double label)位于AbstractChartBarChartextends XYChart,它又是extends 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 轴生成标签。如果是这种情况,您可能需要做一些更聪明的事情来为您感兴趣的轴启用它。

于 2012-10-24T06:37:54.943 回答