Java实现动态折线图
导包过程
IDEA中:File——>Project Structure——>Project Settings——>modules——>Dependencies——>+
点完加号之后找到jfreechart的jar包所在位置,建议将其放在项目的lib文件夹下。

使用实例
public class Chart extends JPanel
{
private ChartPanel chartPanel;
private TimeSeries series1,series2;
public Chart() {
series1 = new TimeSeries("real-time temperature", Millisecond.class);
TimeSeriesCollection dataset = new TimeSeriesCollection(this.series);
series2 = new TimeSeries("set temperature", Millisecond.class);
dataset.addSeries(series0);
chartPanel = new ChartPanel(createChart(dataset));
chartPanel.setSize(100, 170);
buttonPanel = new JPanel();
buttonPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
add(chartPanel);
}
private JFreeChart createChart(XYDataset dataset) {
JFreeChart result = ChartFactory.createTimeSeriesChart("Real-time Temperature", "time","temperature", dataset, true, true, false);
XYPlot plot = (XYPlot) result.getPlot();
ValueAxis axis = plot.getDomainAxis();
axis.setAutoRange(true);
axis.setFixedAutoRange(60000.0);
axis = plot.getRangeAxis();
axis.setRange(-50.0, 100.0);
return result;
}
}
一般情况需要改变的折线个数、图例、纵轴范围。
折线个数
通过改变series个数来定,实例中给出了2条折线即series1与series2,后续添加的TimeSeries对象通过调用dataset.addSeries(seriesX);添加即可。
图例
ChartFactory.createTimeSeriesChart("Real-time Temperature", "time","temperature", dataset, true, true, false);的函数原型为
createTimeSeriesChart(String title, String timeAxisLabel, String valueAxisLabel, XYDataset dataset, boolean legend, boolean tooltips, boolean urls)
title是折线图标题
timeAxisLabel是横轴标签
valueAxisLabel是纵轴标签
new TimeSeries("set temperature", Millisecond.class)中第一个参数即是这条折线的图例。
纵轴范围
createChart(XYDataset dataset)方法的24行axis.setRange(-50.0, 100.0);用来设置纵轴范围。
本文介绍了如何在Java中实现动态折线图,包括导入jfreechart库、设置折线数量、定义图例以及调整纵轴范围。通过改变series数量可以添加多条折线,图例可以通过LegendTitle进行定制,而纵轴范围则可通过设置XYPlot的Range来调整。
712

被折叠的 条评论
为什么被折叠?



