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

折线图 line.jsp
XY曲线图 xy.jsp
时间曲线图 timeserver.jsp
其他曲线图 MultipleAxisDemo.jsp

折线图 line.jsp :

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import = "org.jfree.chart.ChartFactory,
                  org.jfree.chart.ChartPanel,
                  org.jfree.chart.JFreeChart,
                  org.jfree.chart.StandardLegend,
                  org.jfree.chart.axis.NumberAxis,
  org.jfree.chart.plot.CategoryPlot,
  org.jfree.chart.plot.PlotOrientation,
  org.jfree.chart.renderer.LineAndShapeRenderer,
  org.jfree.data.CategoryDataset,
  org.jfree.data.DefaultCategoryDataset,
  org.jfree.chart.servlet.ServletUtilities
"%>
<%
       
       // row keys...
       String series1 = "First";
       String series2 = "Second";
       String series3 = "Third";

       // column keys...
       String type1 = "Type 1";
       String type2 = "Type 2";
       String type3 = "Type 3";
       String type4 = "Type 4";
       String type5 = "Type 5";
       String type6 = "Type 6";
       String type7 = "Type 7";
       String type8 = "Type 8";

       // create the dataset...
       DefaultCategoryDataset dataset = new DefaultCategoryDataset();

       dataset.addValue(1.0, series1, type1);
       dataset.addValue(4.0, series1, type2);
       dataset.addValue(3.0, series1, type3);
       dataset.addValue(5.0, series1, type4);
       dataset.addValue(5.0, series1, type5);
       dataset.addValue(7.0, series1, type6);
       dataset.addValue(7.0, series1, type7);
       dataset.addValue(8.0, series1, type8);

       dataset.addValue(5.0, series2, type1);
       dataset.addValue(7.0, series2, type2);
       dataset.addValue(6.0, series2, type3);
       dataset.addValue(8.0, series2, type4);
       dataset.addValue(4.0, series2, type5);
       dataset.addValue(4.0, series2, type6);
       dataset.addValue(2.0, series2, type7);
       dataset.addValue(1.0, series2, type8);

       dataset.addValue(4.0, series3, type1);
       dataset.addValue(3.0, series3, type2);
       dataset.addValue(2.0, series3, type3);
       dataset.addValue(3.0, series3, type4);
       dataset.addValue(6.0, series3, type5);
       dataset.addValue(3.0, series3, type6);
       dataset.addValue(4.0, series3, type7);
       dataset.addValue(3.0, series3, type8);   
   
         
       // create the chart...
       JFreeChart chart = ChartFactory.createLineChart(
           "血压水平分布图",       // chart title
           "Type",                    // domain axis label
           "Value",                   // range axis label
           dataset,                   // data
           PlotOrientation.VERTICAL,  // orientation
           true,                      // include legend
           true,                      // tooltips
           false                      // urls
       );

       // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
       StandardLegend legend = (StandardLegend) chart.getLegend();
       legend.setDisplaySeriesShapes(true);
       legend.setShapeScaleX(1.5);
       legend.setShapeScaleY(1.5);
       legend.setDisplaySeriesLines(true);   
       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.setItemLabelsVisible(true);          
     
 
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 %>">
 

XY曲线图 xy.jsp :

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import =" java.awt.*"%>
<%@ page import = " java.awt.geom.Ellipse2D"%>
<%@ page import = " java.io.PrintWriter"%>
<%@ page import = " java.text.SimpleDateFormat"%>
<%@ page import = " java.util.Date"%>
<%@ page import = " java.util.ArrayList"%>
<%@ page import = " java.util.Iterator"%>
<%@ page import = " java.util.Locale"%>
<%@ page import = " java.text.NumberFormat"%>
<%@ page import = " javax.servlet.http.HttpSession"%>
<%@ page import = " org.jfree.data.*"%>
<%@ page import = " org.jfree.chart.*"%>
<%@ page import = " org.jfree.chart.axis.*"%>
<%@ page import = " org.jfree.chart.renderer.BarRenderer"%>
<%@ page import = " org.jfree.chart.renderer.StandardXYItemRenderer"%>
<%@ page import = " org.jfree.chart.renderer.StackedXYAreaRenderer"%>
<%@ page import = " org.jfree.chart.renderer.XYAreaRenderer"%>
<%@ page import = " org.jfree.chart.plot.*"%>
<%@ page import = " org.jfree.chart.entity.*"%>
<%@ page import = " org.jfree.chart.labels.*"%>
<%@ page import = " org.jfree.chart.urls.*"%>
<%@ page import ="org.jfree.chart.servlet.*"%>
<%@ page import = "java.io.PrintWriter"%>
<%@ page import = "java.util.ArrayList"%>
<%@ page import = "java.util.Iterator,org.jfree.data.time.*,java.awt.Font"%>
<%
XYSeries dataSeries = new XYSeries("增长");     

for (int i = 0; i <= 10; i++)
{
int x=(int) (100*Math.random());
int y=(int) (100*Math.random());
dataSeries.add(x,y);
}

XYSeries dataSeries1 = new XYSeries("趋势");     

for (int j = 0; j <= 100; j++)
{
int x=(int) (100*Math.random());
int y=(int) (100*Math.random());
dataSeries1.add(j,40);
}


XYSeriesCollection xyDataset = new XYSeriesCollection();

xyDataset.addSeries(dataSeries);
xyDataset.addSeries(dataSeries1);


String filename = "";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.UK);
StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,sdf,NumberFormat.
getInstance());

TimeSeriesURLGenerator urlg = new TimeSeriesURLGenerator(sdf, "pie_chart.jsp", "series", "hitDate");
//  Create the chart object

ValueAxis xAxis = new NumberAxis("X轴坐标");
//x轴坐标
ValueAxis yAxis = new NumberAxis("Y轴坐标");
//y轴坐标
StandardXYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.LINES ,ttg, urlg);
renderer.setShapesFilled(true);
            
Font font=new Font("黑体",Font.TRUETYPE_FONT, 12);
XYPlot plot = new XYPlot(xyDataset, xAxis, yAxis, renderer);
JFreeChart chart = new JFreeChart("测试曲线图", font, plot, true);
chart.setBackgroundPaint(java.awt.Color.white);            

//  Write the chart image to the temporary directory
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);    
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;%>
<html>
<head>
</head>
<body>
<table border=0>
<tr>
<td>
   <br>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">

</td>
</tr>
</table>
</body>
</html>

时间曲线图 timeserver.jsp :

[1]  [2]  
相关文章