首页 文章

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

提问于
浏览
4

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

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

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

怎么做??

3 回答

  • 0

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

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

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

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

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

    mRenderer.setYLabels(0);
    
  • 1

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

    看一下位于 AbstractChartgetLabel(double label)方法( BarChart extends 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轴生成标签 . 如果是这种情况,您可能需要做一些稍微聪明的事情才能为您感兴趣的轴启用它 .

相关问题