2014-06-20 54 views
2

如何讓我的GraphView始終從零開始,而不是從最低數量的數據開始?例如,如果我收到的數據是{10,44,1,15},最下面的將是1,我希望爲零。我怎樣才能做到這一點 ?GraphView始終從零開始,並動態地顯示數據

我該如何動態地調整GraphViewSeries?例如我接收與數據的數組和我取決於該陣列的尺寸,使GraphViewSeries,像如果我接收與3個元素的數組的GraphViewSeries會是這樣想:

GraphViewSeries exampleSeries = new GraphViewSeries(
       new GraphViewData[] { 
         new GraphViewData(1, total[0]), 
         new GraphViewData(2, total[1]), 
         new GraphViewData(3, total[2])}); 

如果陣列具有5元素將會是這樣的:

GraphViewSeries exampleSeries = new GraphViewSeries(
       new GraphViewData[] { 
         new GraphViewData(1, total[0]), 
         new GraphViewData(2, total[1]), 
         new GraphViewData(3, total[2]), 
         new GraphViewData(4, total[3]), 
         new GraphViewData(5, total[4]) }); 

我該怎麼做?

回答

5

您可以設置最小值和最大值是這樣的:

GraphView graphView = new LineGraphView(context, "Graph name") 
graphView.setManualYAxisBounds((double) max, (double) min); 

對於動態系列,你可以這樣做:

GraphViewData[] data = new GraphViewData[total.length]; 
for (int a = 0; a < total.length; a++) { 
    data[a] = new GraphView.GraphViewData(a, total[a]); 
} 

那麼您將數據添加到一系列這樣的:

GraphViewSeriesStyle style = new GraphViewSeriesStyle(Color.rgb(150, 150, 150), 2); 
GraphViewSeries series = new GraphViewSeries(driverName.substring(0, 3).toUpperCase(), style, data); 

作的官方文檔,請參閱here

+0

非常感謝你:) – SnakeSheet

+0

我忘了驅動程序名更改爲普通字符串,它應該是在圖例顯示的字符串。 – Ayoub

+0

我不知道爲什麼,但我的數組是{3,1,2,2},但是當我創建圖形時,我得到1,3,2,2:/ – SnakeSheet

5

在GraphView 4.x中,設置軸的最大值和最小值,必須通過視口來完成:

graphView.getViewport().setYAxisBoundsManual(true); 
graphView.getViewport().setMinY(min); 
graphView.getViewport().setMaxY(max); 

'graphView.setManualYAxisBounds()' 不再存在。

又見http://www.android-graphview.org/documentation/migration-from-31-to-40

+1

這應該是正確的答案。 – Tony