我有一张图表,显示完成的任务数量与时间的关系。在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);
该行允许我显示整个值范围,但是我无法将范围恢复到自动值,该值将上限设置为高于系列中的最大值(它将呈现的方式)如果你没有设置范围那么。)
答案 0 :(得分:3)
作为权宜之计,您可以保留默认的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);