2012-10-24 87 views
4

我正在開發一個android應用程序並使用AChartEngine進行製圖。條形圖是根據來自服務器的動態數據繪製的。向條形圖中的Y軸標籤添加%符號AChartEngine

Th Y軸標籤被設置爲顯示從0到100,無標籤是11秒顯示 0..10..20..30..40..60..70..70..80 .90..100作爲Y軸標籤。是否可以設置自定義Y軸的標籤,使得它增加了「%」標誌Y軸標題值之後,使其顯示,

0%.. 10%.. 20%.. 30%.. 40%...... 60%...... 70%...... 80%...... 90%...... 100%作爲Y軸標籤值。

怎麼辦?

回答

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來完成你以後的工作。

看一看位於AbstractChartgetLabel(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軸標籤的唯一的事情。如果是這樣的話,你可能需要做一些稍微聰明,使之只爲你感興趣的軸。

1

爲了在Y軸上設置自定義標籤,你只需要使用以下方法:

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

另外,如果你想隱藏的默認標籤,這樣做:

mRenderer.setYLabels(0);