jfreechart图形绘制(一)
代码:
package number1; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.StandardXYToolTipGenerator; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; //用java生成各种图形,比如柱状图、曲线图、条形图、饼图 public class JavaCreateMap { // 生成曲线图 private void createQXT(String title, String dataName1, String dataName2, String xtitle, String ytitle,String filePath) { try { XYSeries xyseries = new XYSeries(dataName1); XYSeries xyseries1 = new XYSeries(dataName2); XYSeriesCollection xyseriescollection = new XYSeriesCollection();//数据集 double count1 = 1; double count2 = 1; for (int i = 0; i < 31; i++) {//表示该图片有31行数据 String data1 = ""+(i+1); String data2 = ""+(i+2); for (int j = 0; j < 2; j++) {//每行2跳数据 if (j == 0) { xyseries.add(count1, Double.parseDouble(data1)); count1++; } if (j == 1) { xyseries1.add(count2, Double.parseDouble(data2)); count2++; } } } xyseriescollection.addSeries(xyseries); xyseriescollection.addSeries(xyseries1); JFreeChart chart = createChart(xyseriescollection, title, xtitle, ytitle); // 标题、x轴标题、y轴标题 chart.setBackgroundPaint(Color.white); // 设置背景色 chart.setBorderVisible(false); // 设置不边框 XYPlot plot = (XYPlot) chart.getPlot(); //saveChartAsJPEG:表示保存为jpeg格式的图片 ChartUtilities.saveChartAsJPEG(new File(filePath), chart, 800, 500);//宽800,高500 } catch (IOException e) { e.printStackTrace(); } } public static JFreeChart createChart(XYDataset xydataset, String title, String xtitle, String ytitle) { JFreeChart jfreechart = ChartFactory.createXYLineChart(title, xtitle, ytitle, xydataset, PlotOrientation.VERTICAL, true, true, false); XYPlot xyplot = (XYPlot) jfreechart.getPlot(); XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(); xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] { 6F, 6F }, 0.0F)); xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(2.0F, 1, 1, 1.0F, null, 0.0F)); xylineandshaperenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); xylineandshaperenderer.setItemLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 24));// 设置字体 xyplot.setRenderer(xylineandshaperenderer); NumberAxis numberaxis = (NumberAxis) xyplot.getRangeAxis(); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); return jfreechart; } public static void main(String[] args) { JavaCreateMap jcm = new JavaCreateMap(); String title="**公司采矿完成量"; String xtitle = "2012年10月";// X轴标题 String ytitle = "完成量";// Y轴标题 String dataName1 = "计划";//数据代表的含义 String dataName2 = "完成";//数据代表的含义 String filePath = "D:\\aa.jpeg"; jcm.createQXT(title, dataName1, dataName2, xtitle, ytitle,filePath); System.out.println(" ------生成图片完成"+filePath+"------"); } }
效果: