答案:使用JFreeChart绘制成绩曲线图需先导入依赖,再创建DefaultCategoryDataset数据集录入学生成绩,接着用ChartFactory生成折线图并嵌入Swing界面显示,最后可调整坐标轴范围等样式美化图表。

想在Java初学项目中展示成绩曲线图,JFreeChart是个简单又实用的选择。它是一个开源的Java图表库,支持多种图形,比如折线图、柱状图、饼图等,特别适合用来展示学生成绩的变化趋势。下面一步步带你用JFreeChart绘制一个成绩曲线图。
1. 准备工作:导入JFreeChart依赖
使用JFreeChart前,需要先将相关库引入项目。如果你用的是普通Java项目,去官网或Maven仓库下载以下两个jar包:
- jfreechart-x.x.x.jar
- jcommon-x.x.x.jar
然后把它们添加到项目的Build Path中。如果是Maven项目,在pom.xml中加入:
org.jfree jfreechart 1.5.3
2. 创建成绩数据集
JFreeChart使用Dataset来存放图表数据。展示成绩曲线图一般用XYSeriesCollection或DefaultCategoryDataset。这里以学生各次考试成绩为例,用类别数据集更直观。
立即学习“Java免费学习笔记(深入)”;
示例代码:
DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(85, "张三", "第一次"); dataset.addValue(90, "张三", "第二次"); dataset.addValue(78, "张三", "第三次"); dataset.addValue(88, "李四", "第一次"); dataset.addValue(82, "李四", "第二次"); dataset.addValue(95, "李四", "第三次");
上面代码记录了两位学生的三次考试成绩,“张三”和“李四”是行键(seriesKey),“第一次”等是列键(columnKey)。
3. 生成折线图并显示
有了数据,就可以创建JFreeChart对象并生成图表了。使用ChartFactory.createLineChart()方法快速创建折线图。
代码示例:
JFreeChart chart = ChartFactory.createLineChart(
"学生成绩曲线图", // 图表标题
"考试次数", // x轴标签
"成绩", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL,
true, // 显示图例
true, // 显示提示
false // 不生成URL
);
接着,把图表嵌入Swing界面中显示:
ChartPanel chartPanel = new ChartPanel(chart);
JFrame frame = new JFrame("成绩分析");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(chartPanel);
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
4. 美化图表(可选)
为了让图表更清晰,可以调整颜色、字体或坐标轴范围。
比如修改Y轴范围:
CategoryPlot plot = (CategoryPlot) chart.getPlot(); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setRange(0, 100); // 成绩区间0-100
也可以设置线条样式或点的形状,提升可视化效果。
基本上就这些。通过JFreeChart,你可以在Java项目中轻松实现成绩趋势的图形化展示,对初学者来说门槛低、见效快。只要准备好数据,几行代码就能出图,非常适合课程设计或小项目演示。










