使用的jfreecart版本为jfreechart-1.0.14.jar,如果要使用jfreechart,还必须要导入其依赖包jcommon,使用的版本为jcommon-1.0.17.jar
下图展示了所使用的jfreechart基本类之间的关系:
public class charttest { public static void main(String[] args) { JFreeChart chart = ChartFactory.createTimeSeriesChart("示例", "x轴名称", "y轴名称", getDataSet(), true, false, false); chart.getTitle().setFont(new Font("宋体", Font.PLAIN, 12));//标题 chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));//图例 XYPlot plot = chart.getXYPlot();//图表 DateAxis x = (DateAxis)plot.getDomainAxis();//x轴 x.setLabelFont(new Font("宋体", Font.PLAIN, 12));//x轴名称字体 x.setTickLabelFont(new Font("宋体", Font.PLAIN, 12));//x轴节点字体 x.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd HH:mm"));//x轴节点格式 NumberAxis y = (NumberAxis)plot.getRangeAxis();//y轴 y.setLabelFont(new Font("宋体", Font.PLAIN, 12));//y轴名称字体 y.setTickLabelFont(new Font("宋体", Font.PLAIN, 12));//y轴节点字体 NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(1); y.setNumberFormatOverride(nf);//y轴节点格式 XYLineAndShapeRenderer render = (XYLineAndShapeRenderer) plot.getRenderer();//图表式样 plot.setBackgroundPaint(Color.LIGHT_GRAY);//背景颜色 plot.setDomainGridlinePaint(Color.green);//网格竖线颜色 plot.setRangeGridlinePaint(Color.green);//网格横线颜色 render.setBaseShapesVisible(true);//显示节点 FileOutputStream output; try { output = new FileOutputStream("D:\\test.jpg"); ChartUtilities.writeChartAsPNG(output, chart, 450, 400); } catch (Exception e) { e.printStackTrace(); } } private static XYDataset getDataSet(){ TimeSeriesCollection tsSet = new TimeSeriesCollection(); TimeSeries ts = new TimeSeries("test"); ts.add(new Day(1, 1, 2013), 11.1); ts.add(new Day(2, 1, 2013), 12.2); //ts.add(new Month(2, 2013), 133); //ts.add(new Month(3, 2013), 111); tsSet.addSeries(ts); return tsSet; } }
显示的结果为: