热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->java 
站内搜索:
JfreeChart作好的折线+曲线图!(2)
作者:toicecream 来源:blog 整理日期:2007-8-4

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import = "org.jfree.chart.ChartFactory,
                  org.jfree.chart.ChartPanel,
                  org.jfree.chart.JFreeChart,
  org.jfree.chart.servlet.ServletUtilities,
  org.jfree.chart.*,
  org.jfree.chart.StandardLegend,
  org.jfree.chart.axis.DateAxis,
  org.jfree.chart.plot.XYPlot,
  org.jfree.chart.renderer.StandardXYItemRenderer,
  org.jfree.chart.renderer.XYItemRenderer,
  org.jfree.data.XYDataset,
  org.jfree.data.time.Month,
  org.jfree.data.time.TimeSeries,
  org.jfree.data.time.TimeSeriesCollection
"%>
<%

       TimeSeries s1 = new TimeSeries("L&G European Index Trust", Month.class);
       s1.add(new Month(2, 2001), 181.8);
       s1.add(new Month(3, 2001), 167.3);
       s1.add(new Month(4, 2001), 153.8);
       s1.add(new Month(5, 2001), 167.6);
       s1.add(new Month(6, 2001), 158.8);
       s1.add(new Month(7, 2001), 148.3);
       s1.add(new Month(8, 2001), 153.9);
       s1.add(new Month(9, 2001), 142.7);
       s1.add(new Month(10, 2001), 123.2);
       s1.add(new Month(11, 2001), 131.8);
       s1.add(new Month(12, 2001), 139.6);
       s1.add(new Month(1, 2002), 142.9);
       s1.add(new Month(2, 2002), 138.7);
       s1.add(new Month(3, 2002), 137.3);
       s1.add(new Month(4, 2002), 143.9);
       s1.add(new Month(5, 2002), 139.8);
       s1.add(new Month(6, 2002), 137.0);
       s1.add(new Month(7, 2002), 132.8);

       TimeSeries s2 = new TimeSeries("L&G UK Index Trust", Month.class);
       s2.add(new Month(2, 2001), 129.6);
       s2.add(new Month(3, 2001), 123.2);
       s2.add(new Month(4, 2001), 117.2);
       s2.add(new Month(5, 2001), 124.1);
       s2.add(new Month(6, 2001), 122.6);
       s2.add(new Month(7, 2001), 119.2);
       s2.add(new Month(8, 2001), 116.5);
       s2.add(new Month(9, 2001), 112.7);
       s2.add(new Month(10, 2001), 101.5);
       s2.add(new Month(11, 2001), 106.1);
       s2.add(new Month(12, 2001), 110.3);
       s2.add(new Month(1, 2002), 111.7);
       s2.add(new Month(2, 2002), 111.0);
       s2.add(new Month(3, 2002), 109.6);
       s2.add(new Month(4, 2002), 113.2);
       s2.add(new Month(5, 2002), 111.6);
       s2.add(new Month(6, 2002), 108.8);
       s2.add(new Month(7, 2002), 101.6);

       TimeSeriesCollection dataset = new TimeSeriesCollection();
       dataset.addSeries(s1);
       dataset.addSeries(s2);

       dataset.setDomainIsPointsInTime(true);
JFreeChart chart = ChartFactory.createTimeSeriesChart(
           "Legal & General Unit Trust Prices",
           "Date", "Price Per Unit",
           dataset,
           true,
           true,
           false
       );

       //chart.setBackgroundPaint(Color.white);

       StandardLegend sl = (StandardLegend) chart.getLegend();
       sl.setDisplaySeriesShapes(true);

       XYPlot plot = chart.getXYPlot();
      // plot.setBackgroundPaint(Color.lightGray);
       //plot.setDomainGridlinePaint(Color.white);
       //plot.setRangeGridlinePaint(Color.white);
      //plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));
       plot.setDomainCrosshairVisible(true);
       plot.setRangeCrosshairVisible(true);
       
       XYItemRenderer renderer = plot.getRenderer();
       if (renderer instanceof StandardXYItemRenderer) {
           StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
           rr.setPlotShapes(true);
           rr.setShapesFilled(true);
       }
       
       DateAxis axis = (DateAxis) plot.getDomainAxis();
       //axis.setDateFormatOverride(new SimpleDateFormat("MM-yyyy"));


String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
 


其他曲线图 MultipleAxisDemo.jsp :


<%@ page contentType="text/html;charset=GBK"%>
<%@ page import = "org.jfree.chart.ChartFactory,
                  org.jfree.chart.ChartPanel,
                  org.jfree.chart.JFreeChart,
  org.jfree.chart.servlet.ServletUtilities,
  org.jfree.chart.axis.AxisLocation,
  org.jfree.chart.axis.NumberAxis,
  org.jfree.chart.plot.PlotOrientation,
  org.jfree.chart.plot.XYPlot,
  org.jfree.chart.renderer.StandardXYItemRenderer,
  org.jfree.chart.title.TextTitle,
  org.jfree.data.XYDataset,
  org.jfree.data.time.Minute,
  org.jfree.data.time.RegularTimePeriod,
  org.jfree.data.time.TimeSeries,
  org.jfree.data.time.TimeSeriesCollection

  
"%>
<%
String name="Series 1";
double base=100.0;
RegularTimePeriod start=new Minute();
int count=200;
 TimeSeries series = new TimeSeries(name, start.getClass());
       RegularTimePeriod period = start;
       double value = base;
       for (int i = 0; i < count; i++) {
           series.add(period, value);    
           period = period.next();
           value = value * (1 + (Math.random() - 0.495) / 10.0);
       }

       TimeSeriesCollection dataset = new TimeSeriesCollection();
       dataset.addSeries(series);


       
       JFreeChart chart = ChartFactory.createTimeSeriesChart(
           "Multiple Axis Demo 1",
           "Time of Day",
           "Primary Range Axis",
           dataset,
           true,
           true,
           false
       );

       //chart.setBackgroundPaint(Color.white);
       chart.addSubtitle(new TextTitle("Four datasets and four range axes."));  
       XYPlot plot = chart.getXYPlot();
       plot.setOrientation(PlotOrientation.VERTICAL);
       //plot.setBackgroundPaint(Color.lightGray);
       //plot.setDomainGridlinePaint(Color.white);
       //plot.setRangeGridlinePaint(Color.white);
       
       //plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));
       
       StandardXYItemRenderer renderer = (StandardXYItemRenderer) plot.getRenderer();
       //renderer.setPaint(Color.black);
      
      /* // AXIS 2
       NumberAxis axis2 = new NumberAxis("Range Axis 2");
       axis2.setAutoRangeIncludesZero(false);
       //axis2.setLabelPaint(Color.red);
       //axis2.setTickLabelPaint(Color.red);
       //plot.setSecondaryRangeAxis(0, axis2);
       //plot.setSecondaryRangeAxisLocation(0, AxisLocation.BOTTOM_OR_LEFT);

       XYDataset dataset2 = createDataset("Series 2", 1000.0, new Minute(), 170);
       plot.setSecondaryDataset(0, dataset2);
       plot.mapSecondaryDatasetToRangeAxis(0, new Integer(0));
       plot.setSecondaryRenderer(0, new StandardXYItemRenderer());
      // plot.getSecondaryRenderer(0).setSeriesPaint(0, Color.red);
       
       // AXIS 3
       NumberAxis axis3 = new NumberAxis("Range Axis 3");
       //axis3.setLabelPaint(Color.blue);
       //axis3.setTickLabelPaint(Color.blue);
       //plot.setSecondaryRangeAxis(1, axis3);

       XYDataset dataset3 = createDataset("Series 3", 10000.0, new Minute(), 170);
       plot.setSecondaryDataset(1, dataset3);
       plot.mapSecondaryDatasetToRangeAxis(1, new Integer(1));
       
       plot.setSecondaryRenderer(1, new StandardXYItemRenderer());
      //plot.getSecondaryRenderer(1).setSeriesPaint(0, Color.blue);

       // AXIS 4        
       NumberAxis axis4 = new NumberAxis("Range Axis 4");
       axis4.setLabelPaint(Color.green);
       axis4.setTickLabelPaint(Color.green);
      // plot.setSecondaryRangeAxis(2, axis4);
       
       XYDataset dataset4 = createDataset("Series 4", 25.0, new Minute(), 200);
       plot.setSecondaryDataset(2, dataset4);
       plot.mapSecondaryDatasetToRangeAxis(2, new Integer(2));
       
       plot.setSecondaryRenderer(2, new StandardXYItemRenderer());
       //plot.getSecondaryRenderer(2).setSeriesPaint(0, Color.green);      
*/
               


 
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">

 

 

注意以上代码,均在:jfreechart-0.9.20.jar、jcommon-0.9.5.jar下调试通过!

web.xml配置servlet代码:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <servlet>
   <servlet-name>DisplayChart</servlet-name>
   <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
 </servlet>
  <servlet-mapping>
       <servlet-name>DisplayChart</servlet-name>
       <url-pattern>/DisplayChart</url-pattern>
   </servlet-mapping>
</web-app>
 

[1]  [2]  
相关文章