在条形图AChartEngine中添加Y轴标签的百分数符号

4

我正在开发一款安卓应用程序,使用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个回答

1

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

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

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

mRenderer.setYLabels(0);

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

0

我实际上并没有在AChartEngine方面做过很多事情,但是快速浏览源代码表明,您可以扩展BarChart来完成您想要的内容。

请查看AbstractChart中位于getLabel(double label)方法(BarChart扩展了XYChart,后者又扩展了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轴标签。如果是这样,你可能需要做一些稍微聪明一点的事情,以便仅针对你感兴趣的轴启用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接