簡體   English   中英

切換JFreeChart軸范圍的上限

[英]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);

根據估計的例子org.jfree.chart.demo.TimeSeriesChartDemo1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM