2012-03-30 53 views
0

其實我正在爲android的圖表工具工作。雖然搜索我得到achartengine工具,我下載了演示源代碼。在這個源文件中有一個MultipleTemperatureChart.java的例子。在這個例子中,它繪製了兩個y軸和一個x軸的圖。 我注意到的奇怪的事情是,當我在代碼中簡單地通過我自己的值而不是示例代碼中給出的值時。我注意到的是,對左y軸和x軸的圖形圖很好。但是使用正確的y軸和x軸的圖形圖是錯誤的。爲什麼發生這種情況是代碼中的任何錯誤。我在代碼中所做的更改顯示在下面粘貼的代碼中的**符號中。在achartengine演示源代碼中的示例顯示錯誤的結果

public Intent execute(Context context) { 
String[] titles = new String[] { "Crete" }; 
List<double[]> x = new ArrayList<double[]>(); 
for (int i = 0; i < titles.length; i++) { 
    **x.add(new double[] { 1, 2, 3, 4}); 
} 
List<double[]> values = new ArrayList<double[]>(); 
**values.add(new double[] { 10, 15, 20, 25}); 
int[] colors = new int[] { Color.BLUE, Color.YELLOW }; 
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND, 
    PointStyle.TRIANGLE, PointStyle.SQUARE }; 
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(2); 
setRenderer(renderer, colors, styles); 
int length = renderer.getSeriesRendererCount(); 
for (int i = 0; i < length; i++) { 
    ((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true); 
} 
setChartSettings(renderer, "Average temperature", "Month", "Temperature", 0.5, 12.5, 0, 32, 
    Color.LTGRAY, Color.LTGRAY); 
renderer.setXLabels(12); 
renderer.setYLabels(10); 
renderer.setShowGrid(true); 
renderer.setXLabelsAlign(Align.RIGHT); 
renderer.setYLabelsAlign(Align.RIGHT); 
renderer.setZoomButtonsVisible(true); 
renderer.setPanLimits(new double[] { -10, 20, -10, 40 }); 
renderer.setZoomLimits(new double[] { -10, 20, -10, 40 }); 

renderer.setYTitle("Hours", 1); 
renderer.setYAxisAlign(Align.RIGHT, 1); 
renderer.setYLabelsAlign(Align.LEFT, 1); 
XYMultipleSeriesDataset dataset = buildDataset(titles, x, values); 
values.clear(); 
**values.add(new double[] { 10, 15, 20, 25}); 
addXYSeries(dataset, new String[] { "Sunshine hours" }, x, values, 1); 
Intent intent = ChartFactory.getLineChartIntent(context, dataset, renderer, 
    "Average temperature"); 
return intent; 
} 

截屏圖在此之後,我發現改變

enter image description here

+0

你是怎麼做到的?當我嘗試這個例子時,我總是得到一個錯誤...應用程序無法啓動... – Shilaghae 2012-04-14 22:44:42

回答

0

你只有一個x軸,即:

x.add(new double[] { 1, 2, 3, 4}); 

你不需要另一個?