使用 LineAndShapeRenderer生成折现图
时间: 2023-05-25 15:02:05 浏览: 77
使用 LineAndShapeRenderer 可以很方便的生成折线图。下面是一个简单的实例代码:
```
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.LineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class LineChartExample extends JPanel {
private static final long serialVersionUID = 1L;
public LineChartExample() {
super();
JPanel chartPanel = createChartPanel();
add(chartPanel);
}
private JPanel createChartPanel() {
String chartTitle = "Line Chart Example";
String xAxisLabel = "X";
String yAxisLabel = "Y";
XYDataset dataset = createDataset();
JFreeChart chart = ChartFactory.createXYLineChart(chartTitle, xAxisLabel, yAxisLabel, dataset,
PlotOrientation.VERTICAL, true, true, false);
XYPlot plot = chart.getXYPlot();
LineAndShapeRenderer renderer = new LineAndShapeRenderer();
renderer.setSeriesPaint(0, Color.RED);
renderer.setSeriesStroke(0, new BasicStroke(2.0f));
plot.setRenderer(renderer);
plot.setBackgroundPaint(Color.white);
chart.getLegend().setFrame(BlockBorder.NONE);
return new ChartPanel(chart) {
private static final long serialVersionUID = 1L;
@Override
public Dimension getPreferredSize() {
return new Dimension(500, 270);
}
};
}
private XYDataset createDataset() {
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series = new XYSeries("Data 1");
series.add(1.0, 1.0);
series.add(2.0, 4.0);
series.add(3.0, 3.0);
series.add(4.0, 5.0);
series.add(5.0, 6.0);
series.add(6.0, 4.0);
series.add(7.0, 4.0);
series.add(8.0, 7.0);
series.add(9.0, 10.0);
series.add(10.0, 9.0);
dataset.addSeries(series);
return dataset;
}
}
```
在这个例子中,我们先创建了一个 XYSeriesCollection 对象作为数据源,然后创建一个 XYSeries 对象来存储数据。在 createDataset() 方法中,我们将数据放入 XYSeries 中,然后将 XYSeries 引用添加到 XYSeriesCollection 中。然后,我们创建一个线性折线图,将数据集添加到它上面。接下来,我们定义了 LineAndShapeRenderer 对象,为我们的线条设置颜色和线条宽度,并将它添加到图表中。
最后,我们将图表添加到 ChartPanel 中,为了美观起见,我们定制了 JPanel 的外观,并将其返回。现在我们已经生成了一个简单的折线图。