1、引入maven依赖:
<dependency> <groupId>org.jfree</groupId> <artifactId>jfreechart</artifactId> <version>1.5.4</version></dependency>
2、单折线图
下面以一个展示月发卖额折线图的例子:
@Testpublic void test01() throws IOException { // 创建数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(12, 34;月发卖额", "1月"); dataset.addValue(11, "月发卖额", "2月"); dataset.addValue(15, "月发卖额", "3月"); dataset.addValue(12, "月发卖额", "4月"); dataset.addValue(14, "月发卖额", "5月"); dataset.addValue(11, "月发卖额", "6月"); dataset.addValue(14, "月发卖额", "7月"); dataset.addValue(11, "月发卖额", "8月"); dataset.addValue(14, "月发卖额", "9月"); dataset.addValue(13, "月发卖额", "10月"); dataset.addValue(14, "月发卖额", "11月"); dataset.addValue(13, "月发卖额", "12月"); // 创建并定制主题以支持中文 StandardChartTheme theme = (StandardChartTheme) StandardChartTheme.createJFreeTheme(); theme.setTitlePaint(Color.BLACK); theme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 18)); // 利用支持中文的字体 theme.setRegularFont(new Font("宋体", Font.PLAIN, 14)); theme.setLargeFont(new Font("宋体", Font.PLAIN, 16)); ChartFactory.setChartTheme(theme); // 创建折线图 JFreeChart chart = ChartFactory.createLineChart( "折线图", // 图表标题 "月份", // X轴标签 "月发卖额", // Y轴标签 dataset // 数据集 ); int width = 640; // 图片宽度 int height = 480; // 图片高度 File file = new File("C:\\Users\\Administrator\\Desktop\\line_chart.png"); ChartUtils.saveChartAsPNG(file, chart, width, height);}
效果图如下:
折线图1
3、双折线图
在上述月发卖额折线图的根本上,再加一条折线,该折线用来表示月利润
@Testpublic void test02() throws IOException { // 创建第一个数据系列 XYSeries series1 = new XYSeries("月均发卖额"); series1.add(1,4); series1.add(2,11); series1.add(3,15); series1.add(4,12); series1.add(5,14); series1.add(6,19); series1.add(7,8); series1.add(8,11); series1.add(8,14); series1.add(10,14); series1.add(11,9); series1.add(12,13); // 创建第二个数据系列 XYSeries series2 = new XYSeries("月利润"); series2.add(1,2); series2.add(2,4); series2.add(3,8); series2.add(4,5); series2.add(5,7); series2.add(6,13); series2.add(7,3); series2.add(8,7); series2.add(8,7); series2.add(10,12); series2.add(11,7); series2.add(12,11); // 将两个数据系列放入数据集 XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series1); dataset.addSeries(series2); // 创建并定制主题以支持中文 StandardChartTheme theme = (StandardChartTheme) StandardChartTheme.createJFreeTheme(); theme.setTitlePaint(Color.BLACK); theme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 18)); // 利用支持中文的字体 theme.setRegularFont(new Font("宋体", Font.PLAIN, 14)); theme.setLargeFont(new Font("宋体", Font.PLAIN, 16)); ChartFactory.setChartTheme(theme); // 创建折线图 JFreeChart chart = ChartFactory.createXYLineChart( "", "月份", "金额", dataset, PlotOrientation.VERTICAL, true, // 是否显示图例 true, // 是否天生工具提示 false // 是否天生URL链接 ); int width = 640; // 图片宽度 int height = 480; // 图片高度 // 将图表输出为PNG图片 File file = new File("C:\\Users\\Administrator\\Desktop\\line_chart2.png"); ChartUtils.saveChartAsPNG(file, chart, width, height);}
效果图如下:
折线图2
当然了JFreeChart的功能不但是天生折线图,JFreeChart是一个强大的开源Java库,用于创建各种图表,如柱状图、折线图、饼图、散点图等。由于需求只须要天生折线图,以是只是大略理解了折线图的天生办法,感兴趣的可以自己研究下。