1 2 3 4 5 | DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100, "Jan", "Spring Security"); dataset.addValue(150, "Jan", "jBPM 4"); dataset.addValue(300, "Jan", "Ext JS"); dataset.addValue(100, "Jan", "JFreeChart"); |
如果我们只画一条折线时,确保第二个参数是一致的。
下一步使用createLineChart创建图表。
1 2 3 4 5 6 7 8 9 10 | JFreeChart chart = ChartFactory.createLineChart( "chart", // 标题 "num", // 横坐标 "type", // 纵坐标 dataset, // 数据 PlotOrientation.VERTICAL, // 竖直图表 true, // 是否显示legend false, // 是否显示tooltip false // 是否使用url链接 ); |
最后通过ChartUtilities将报表导出成图片。
图 4.1. 简单折线图
4.2. 三维折线图
把createLineChart换成createLineChart3D就可以实现三维折线图。
图 4.2. 三维折线图
4.3. 多重折线图
在CategoryDataset中设置多个分组即可显示为多重折线图。
1 2 3 4 5 6 7 8 | dataset.addValue(100, "Jan", "Spring Security"); dataset.addValue(150, "Jan", "jBPM 4"); dataset.addValue(300, "Jan", "Ext JS"); dataset.addValue(100, "Jan", "JFreeChart"); dataset.addValue(200, "Fer", "Spring Security"); dataset.addValue(120, "Fer", "jBPM 4"); dataset.addValue(240, "Fer", "Ext JS"); dataset.addValue(40, "Fer", "JFreeChart"); |
图 4.3. 多重折线图
4.4. 设置折线样式
设置节点的样式。
1 2 | renderer.setBaseShapesVisible(true); renderer.setShape(new Ellipse2D.Double(-2, -2, 4, 4)); |
显示数值
1 2 | renderer.setItemLabelsVisible(true); renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); |
显示虚线
1 2 | renderer.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] {10.0f}, 0.0f)); |
只要会用awt,想要什么样的图形都可以画出来。
图 4.4. 设置折线样式