我在 JFreeChart 中創建了一個圖,由一個TimeSeriesCollection和組成XYPlot。水平軸使用DateAxis,垂直 (Y) 軸使用NumberAxis。如果水平軸使用我有數據點的所有日期,我在使用時得到正確的 Y 軸刻度:Y1axis.setAutoRangeIncludesZero(false);Y1axis.setRangeWithMargins(LeftSeries.getRangeBounds(true));現在我只想從可用時間數據的一部分創建一個圖。例如:我有涵蓋四年的數據點,但只想創建第二年的圖。為此,我創建了一個日期范圍(MinDate是我要顯示的最早數據點,MaxDate是我要顯示的最新數據點):dateAxis.setMinimumDate(MinDate);dateAxis.setMaximumDate(MaxDate);這會根據需要縮放水平軸。但是,如果我現在使用相同的代碼來縮放 Y 軸 ( Y1axis.setRangeWithMargins(LeftSeries.getRangeBounds(true))),我將獲得適用于整個數據集的整個垂直范圍。我想要的是適合日期范圍的垂直刻度MinDate~ MaxDate。我已經嘗試了一些方法來使垂直軸正確縮放,但我的嘗試都沒有任何效果。例如:double LowValue = Y1axis.getLowerBound();double HighValue = Y1axis.getUpperBound();Y1axis.setRange(LowValue, HighValue);不工作。我應該使用什么代碼來調整垂直 (Y) 軸上的比例以適應圖中顯示的水平時間軸數據點?
1 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
您只需為軸啟用自動范圍Y1axis
:
Y1axis.setAutoRangeIncludesZero(false); Y1axis.setAutoRange(true);
例子:
所有數據:
禁用自動量程的值子集:
啟用自動范圍的值的子集:
添加回答
舉報
0/150
提交
取消