java 代码
- /**
- * @{#} LineChart.java Create on 2007-11-6 下午04:28:27
- *
- * Copyright (c) 2007 by KUBAO.
- */
- package test;
- import java.awt.Color;
- import java.awt.geom.Rectangle2D;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartFrame;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.axis.NumberAxis;
- import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
- import org.jfree.chart.plot.CategoryPlot;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.chart.renderer.category.LineAndShapeRenderer;
- import org.jfree.data.category.DefaultCategoryDataset;
- import org.jfree.data.general.DefaultPieDataset;
- /**
- * @author <a href="mailto:wanghb@sinotec.com.cn">wanghb</a>
- * @version 1.0
- */
- public class LineChart{
- public LineChart() {
- }
- public static void main(String[] args){
- // 各曲线名称
- String series1 = "冰箱";
- String series2 = "彩电";
- String series3 = "洗衣机";
- // 横轴名称(列名称)
- String type1 = "1月";
- String type2 = "2月";
- String type3 = "3月";
- String type4 = "4月";
- String type5 = "5月";
- String type6 = "6月";
- String type7 = "7月";
- String type8 = "8月";
- // 建立dataset
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- // 以下可以动态添加数据
- dataset.addValue(1.3, series1, type1);
- dataset.addValue(4.2, series1, type2);
- dataset.addValue(3.9, series1, type3);
- dataset.addValue(5.5, series1, type4);
- dataset.addValue(5.3, series1, type5);
- dataset.addValue(7.1, series1, type6);
- dataset.addValue(7.9, series1, type7);
- dataset.addValue(9.0, series1, type8);
- dataset.addValue(5.3, series2, type1);
- dataset.addValue(7.1, series2, type2);
- dataset.addValue(6.6, series2, type3);
- dataset.addValue(8.0, series2, type4);
- dataset.addValue(4.8, series2, type5);
- dataset.addValue(4.5, series2, type6);
- dataset.addValue(3.7, series2, type7);
- dataset.addValue(4.2, series2, type8);
- dataset.addValue(4.3, series3, type1);
- dataset.addValue(6.4, series3, type2);
- dataset.addValue(3.5, series3, type3);
- dataset.addValue(4.0, series3, type4);
- dataset.addValue(3.6, series3, type5);
- dataset.addValue(3.9, series3, type6);
- dataset.addValue(2.5, series3, type7);
- dataset.addValue(3.1, series3, type8);
- dataset.addValue(4.0, "预警点", type4);
- dataset.addValue(6.4, "预警点", type2);
- dataset.addValue(4.3, "预警点2", type1);
- // 建立chart
- JFreeChart chart = ChartFactory.createLineChart(
- "2005年家电商品销售曲线图", // chart title
- "时间", // domain axis label
- "销售额(百万)", // range axis label
- dataset, // data
- PlotOrientation.VERTICAL, // orientation
- true, // include legend
- true, // tooltips
- false // urls
- );
- // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
- CategoryPlot plot = chart.getCategoryPlot();
- // customise the range axis...
- NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
- rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
- rangeAxis.setAutoRangeIncludesZero(true);
- rangeAxis.setUpperMargin(0.20);
- rangeAxis.setLabelAngle(Math.PI / 2.0);
- LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
- // renderer.setBaseShape(new Rectangle2D.Double(-1.5, -1.5, 3, 3), true); //设置点
- renderer.setShape(new Rectangle2D.Double(-1.5, -1.5, 3, 3));
- renderer.setShapesVisible(true);
- renderer.setSeriesPaint(3,Color.red);
- renderer.setSeriesLinesVisible(3,false);
- renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());//显示折点数据
- renderer.setItemLabelsVisible(true);
- ChartFrame pieFrame = new ChartFrame("折线图预警图",chart);
- pieFrame.pack();
- pieFrame.setVisible(true);
- }
- }