2012-04-03 36 views
1

我試圖瞭解如何從創建的圖表中獲取最大軸值,並且整天忙着整理桌面。這是它是如何創建的:如何從StackedBarChart獲取最大Y值(jFreeChart)

final JFreeChart chart = ChartFactory.createStackedBarChart("", "", symbol, dataSet,PlotOrientation.VERTICAL, false, false, false); 

我可能必須從圖表中獲取數據集,然後從中獲取最大軸值。數據集是DefaultCategoryDataset

問:我該如何做到這一點?

回答

2

通過CategoryDataset

CategoryDataset dataset = createDataset(); 
for (int r = 0; r < dataset.getRowCount(); r++) { 
    double max = Double.MIN_VALUE; 
    for (int c = 0; c < dataset.getColumnCount(); c++) { 
     Number number = dataset.getValue(r, c); 
     double value = number == null ? Double.NaN : number.doubleValue(); 
     if (value > max) { 
      max = value; 
     } 
    } 
    System.out.println(dataset.getRowKey(r) + ": " + max); 
} 

只是重複使用example dataset,產生以下的輸出:

 
First: 5.0 
Second: 8.0 
Third: 6.0 
+1

謝謝!我只想添加(對於像我這樣的其他人):數據集允許空值,以便在獲取其double值或其他值之前檢查「dataset.getValue(r,c)」是否爲空。 – nyxz 2012-04-04 12:04:31

+1

@Maistora:斑點!我已經更新了這個例子。 'Double.NaN'是[_unordered_](http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3),並且總是比較'false'。 – trashgod 2012-04-04 15:53:25

+0

尼斯:)有趣的解決方案。我不知道Double.NAN。感謝您分享這一點 :) – nyxz 2012-04-05 09:24:39

相關問題