折线图的一个例子

java 代码
  1. /**  
  2.  * @{#} LineChart.java Create on 2007-11-6 下午04:28:27  
  3.  *  
  4.  * Copyright (c) 2007 by KUBAO.  
  5.  */  
  6. package test;   
  7.   
  8. import java.awt.Color;   
  9. import java.awt.geom.Rectangle2D;   
  10.   
  11. import org.jfree.chart.ChartFactory;   
  12. import org.jfree.chart.ChartFrame;   
  13. import org.jfree.chart.JFreeChart;   
  14. import org.jfree.chart.axis.NumberAxis;   
  15. import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;   
  16. import org.jfree.chart.plot.CategoryPlot;   
  17. import org.jfree.chart.plot.PlotOrientation;   
  18. import org.jfree.chart.renderer.category.LineAndShapeRenderer;   
  19. import org.jfree.data.category.DefaultCategoryDataset;   
  20. import org.jfree.data.general.DefaultPieDataset;   
  21.   
  22. /**  
  23.  * @author <a href="mailto:[email protected]">wanghb</a>  
  24.  * @version 1.0  
  25.  */  
  26. public class LineChart{   
  27. public LineChart() {   
  28. }   
  29.   
  30. public static void main(String[] args){   
  31.   
  32. //  各曲线名称   
  33.     String series1 = "冰箱";   
  34.     String series2 = "彩电";   
  35.     String series3 = "洗衣机";   
  36.   
  37.   
  38. //  横轴名称(列名称)   
  39.     String type1 = "1月";   
  40.     String type2 = "2月";   
  41.     String type3 = "3月";   
  42.     String type4 = "4月";   
  43.     String type5 = "5月";   
  44.     String type6 = "6月";   
  45.     String type7 = "7月";   
  46.     String type8 = "8月";   
  47.   
  48.   
  49. //  建立dataset   
  50.     DefaultCategoryDataset dataset = new DefaultCategoryDataset();   
  51. //  以下可以动态添加数据   
  52.     dataset.addValue(1.3, series1, type1);   
  53.     dataset.addValue(4.2, series1, type2);   
  54.     dataset.addValue(3.9, series1, type3);   
  55.     dataset.addValue(5.5, series1, type4);   
  56.     dataset.addValue(5.3, series1, type5);   
  57.     dataset.addValue(7.1, series1, type6);   
  58.     dataset.addValue(7.9, series1, type7);   
  59.     dataset.addValue(9.0, series1, type8);   
  60.   
  61.     dataset.addValue(5.3, series2, type1);   
  62.     dataset.addValue(7.1, series2, type2);   
  63.     dataset.addValue(6.6, series2, type3);   
  64.     dataset.addValue(8.0, series2, type4);   
  65.     dataset.addValue(4.8, series2, type5);   
  66.     dataset.addValue(4.5, series2, type6);   
  67.     dataset.addValue(3.7, series2, type7);   
  68.     dataset.addValue(4.2, series2, type8);   
  69.   
  70.     dataset.addValue(4.3, series3, type1);   
  71.     dataset.addValue(6.4, series3, type2);   
  72.     dataset.addValue(3.5, series3, type3);   
  73.     dataset.addValue(4.0, series3, type4);   
  74.     dataset.addValue(3.6, series3, type5);   
  75.     dataset.addValue(3.9, series3, type6);   
  76.     dataset.addValue(2.5, series3, type7);   
  77.     dataset.addValue(3.1, series3, type8);   
  78.     dataset.addValue(4.0"预警点", type4);   
  79.     dataset.addValue(6.4"预警点", type2);   
  80.     dataset.addValue(4.3"预警点2", type1);   
  81.   
  82.   
  83.   
  84. //  建立chart   
  85.     JFreeChart chart = ChartFactory.createLineChart(   
  86.         "2005年家电商品销售曲线图",       // chart title   
  87.         "时间",                    // domain axis label   
  88.         "销售额(百万)",                   // range axis label   
  89.         dataset,                   // data   
  90.         PlotOrientation.VERTICAL,  // orientation   
  91.         true,                      // include legend   
  92.         true,                      // tooltips   
  93.         false                      // urls   
  94.     );   
  95.   
  96. //   NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...   
  97.     CategoryPlot plot = chart.getCategoryPlot();   
  98. //   customise the range axis...   
  99.     NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();   
  100.     rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());   
  101.     rangeAxis.setAutoRangeIncludesZero(true);   
  102.     rangeAxis.setUpperMargin(0.20);   
  103.     rangeAxis.setLabelAngle(Math.PI / 2.0);   
  104.   
  105.     LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();   
  106. //  renderer.setBaseShape(new Rectangle2D.Double(-1.5, -1.5, 3, 3), true);  //设置点   
  107.     renderer.setShape(new Rectangle2D.Double(-1.5, -1.533));   
  108.     renderer.setShapesVisible(true);   
  109.     renderer.setSeriesPaint(3,Color.red);   
  110.     renderer.setSeriesLinesVisible(3,false);   
  111.   
  112.   
  113.     renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());//显示折点数据   
  114.     renderer.setItemLabelsVisible(true);   
  115.        
  116.     ChartFrame pieFrame = new ChartFrame("折线图预警图",chart);   
  117.     pieFrame.pack();   
  118.     pieFrame.setVisible(true);   
  119. }    
  120. }  

你可能感兴趣的:(jfreechart)