[英]Toggle upper bound of JFreeChart axis range
我有一個圖表,顯示完成的任務數量與時間的關系。 在Y軸上,始終包含0,並且有一個固定值,它將是最大任務數。 隨着時間的推移,系列的線條爬升到最大值。 我可以做到這一切。
我想要做的是允許用戶在Y軸從0到MAX和0到自動量程值之間切換。 通過這種方式,它們可以僅放大數據,並且當它們仍然遠離最大值時,不會使圖形的上半部分為空。
JFreeChart chart = ChartFactory.createTimeSeriesChart("", "", "Progress", dataset, false, true, false);
XYPlot plot = chart.getXYPlot();
plot.getRangeAxis().setRange(new Range(0, TOTAL), false, true);
該行允許我顯示整個值范圍,但我無法設置將范圍恢復為自動值,該值將上限設置為高於系列中的最大值(如果您不這樣做,它將呈現的方式)根本不設置范圍。
作為權宜之計,您可以保留默認Range
:
Range auto = plot.getRangeAxis().getRange();
然后恢復它:
this.add(new JButton(new AbstractAction("Restore") {
@Override
public void actionPerformed(ActionEvent e) {
JFreeChart chart = chartPanel.getChart();
XYPlot plot = (XYPlot) chart.getPlot();
plot.getRangeAxis().setRange(auto);
}
}), BorderLayout.SOUTH);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.