JSP页面

<%@ page language="java"  pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    
 
<jsp:useBean id="barchart01" scope="session"
 class="com.ami.chart.SeriesXY" />
</head>
<body>
<%
 String fileName = barchart01.getImg(request.getSession(), out);
 String graphURL = request.getContextPath()
   + "/servlet/DisplayChart?filename=" + fileName;
%>
<br/>
<img src="<%= graphURL %>" border="0" usemap="#<%=fileName %>" />
<br />
</body>
</html>

WEB.XML

 <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>/servlet/DisplayChart</url-pattern>
</servlet-mapping>

Java实现代码

package com.ami.chart;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;

import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspWriter;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.ValueMarker;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.RectangleAnchor;
import org.jfree.ui.TextAnchor;

public class SeriesXY {
    
    public String getImg(HttpSession session ,JspWriter out){
        
        String filename=null;
        double []xydata1_0={12.8d,12.3d,12.9d,12.2d,13.3d,12.0d,12.8d,13.3d,12.9d,13.9d,12.3d,12.0d,12.8d,12.3d,11.9d,13.2d,12.3d,14.0d,12.8d,12.3d,12.9d,13.2d,13.3d,14.0d,12.8d,13.3d,11.9d,13.9d,12.3d,12.0d,19.8d,12.3d,14.9d,18.2d,12.3d,14.0d,12.8d,12.3d,12.9d,18.2d,13.3d,14.0d,12.8d,14.3d,12.9d,13.9d,12.3d,12.0d,13.8d,12.3d,11.9d,13.2d,12.3d,14.0d,12.8d,12.3d,12.9d,18.2d,16.3d,18.0d,12.8d,12.3d,19.9d,13.9d,12.3d,12.0d,12.8d,12.3d,12.9d,13.2d,12.3d,14.0d,12.8d,12.3d,12.9d,12.2d,13.3d,12.0d,12.8d,13.3d,12.9d,13.9d};
        double []xydata1_1={196.0d,223.0d,230.5d,241.0d,195.8d,200.3d,200.0d,230.0d,243.5d,261.0d,259.8d,245.3d,236.0d,260.0d,225.5d,230.0d,190.8d,205.3d,196.0d,223.0d,230.5d,241.0d,195.8d,200.3d,200.0d,230.0d,243.5d,261.0d,259.8d,245.3d,236.0d,260.0d,225.5d,230.0d,190.8d,205.3d,196.0d,223.0d,230.5d,241.0d,195.8d,200.3d,200.0d,230.0d,243.5d,261.0d,259.8d,245.3d,236.0d,260.0d,225.5d,230.0d,190.8d,205.3d,196.0d,223.0d,230.5d,241.0d,195.8d,200.3d,200.0d,230.0d,243.5d,261.0d,259.8d,245.3d,236.0d,260.0d,225.5d,230.0d,190.8d,205.3d,196.0d,223.0d,230.5d,241.0d,195.8d,200.3d,200.0d,230.0d,243.5d,261.0d};
        
        XYSeriesCollection xyCollection=new XYSeriesCollection();
        XYSeries xyseries1=new XYSeries("ACompany");
        for(int i=0;i<82;i++){
            xyseries1.add(xydata1_0[i], xydata1_1[i]);
        }
        XYSeries xyseries2=new XYSeries("BCompany");
        
        xyCollection.addSeries(xyseries1);
        
        //分布点状图
        JFreeChart chart=ChartFactory.createScatterPlot("电压电流图", "电流","电压", xyCollection, PlotOrientation.VERTICAL, true, false, false);
        XYPlot plot=(XYPlot) chart.getPlot();
        
        ValueMarker vmarker=new ValueMarker(230d);//设置分割线
        vmarker.setLabel("平均电压230V");
        vmarker.setLabelPaint(Color.black);
        vmarker.setPaint(Color.red);
        vmarker.setLabelFont(new Font("隶书",Font.PLAIN,10));
        vmarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
        vmarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addRangeMarker(vmarker);
        
        ValueMarker xMarker=new ValueMarker(12.50d);
        xMarker.setLabel("平均电流12.50A");
        xMarker.setPaint(Color.orange);
        xMarker.setLabelFont(new Font("隶书",Font.BOLD,10));
        xMarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
        xMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
        plot.addDomainMarker(xMarker);
        plot.setRangeGridlinePaint(Color.black);//设置X轴的颜色
        
        ValueAxis yAxis=plot.getRangeAxis();
        yAxis.setAutoRange(true);
        yAxis.setAutoRangeMinimumSize(50.0d);
        NumberAxis yNumber=(NumberAxis) plot.getRangeAxis();
        yNumber.setTickUnit(new NumberTickUnit(50d));
        yAxis.setLowerBound(50.0d);
        plot.setRangeAxis(yAxis);
        
        ValueAxis xAxis=plot.getDomainAxis();
        xAxis.setAutoRange(false);
        NumberAxis   numberaxis=(NumberAxis)plot.getDomainAxis();
        numberaxis.setTickUnit(new NumberTickUnit(0.1D));//设置X轴跨度每次增加1
        xAxis.setUpperBound(14.2d);
        xAxis.setLowerBound(11.8d);
        
        XYItemRenderer itRender=plot.getRenderer();
        
                try {
            PrintWriter  pw=new PrintWriter(out);
            StandardEntityCollection sec = new StandardEntityCollection();
            ChartRenderingInfo info = new ChartRenderingInfo(sec);

            filename=ServletUtilities.saveChartAsJPEG(chart,650, 400,null, session);
            ChartUtilities.writeImageMap(pw, filename,info, true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return filename;
    }
}

效果图

用jfreechart在JSP页面显示点状分布图+分割线(转载:http://blog.csdn.net/ami121/article/details/2450945)相关推荐

  1. Windows Phone 7 - 页面间传值 来源-http://blog.csdn.net/dncts/article/details/6160067

    Windows Phone 7 - 页面间传值 分类: Windows Phone 7 2011-01-23 20:42 441人阅读 评论(0) 收藏 举报 在页面间导航时传递参数的方式大致有3种, ...

  2. MFC显示位图 from http://blog.csdn.net/liuzhuomju/article/details/7299458

    这些例子都在vs2005测试通过 一.最简单的一种1.将图像文件以资源形式加入工程中,IDB_BITMAP1 2.用一个PICTURE控件,在其属性中,将其Type设置为Bitmap 3.将Pitur ...

  3. 使用jfreechart在jsp页面柱状图统计

    最近做项目,做了一个报表统计柱状图.觉得挺好的,记录一下. 项目使用的strus1+spring+ibatis 具体代码如下: 以下Java代码被注释掉的是绘制柱形图.另一种是折线图,具体思路一样. ...

  4. java页面分页显示代码_通用分页jsp页面显示

    注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html  的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...

  5. 为什么java打不开jsp_用tomcat部署web项目的时候,tomcat启动成功,但是却打不开项目的login.jsp页面 显示500错误...

    如题, 错误页面如下显示 error.jsp页面显示如下:(我新建一个jsp页面,却并不会出现上述图片的问题,很奇怪啊) HTTP Status 500 - type Exception report ...

  6. idea环境下 servlet配置导致jsp页面显示源码问题

    idea环境下 servlet配置导致jsp页面显示源码问题 今天在做jsp实验(虽然是被废弃的技术但是还是课程要求)过程中遇到了一点令人感到困惑的问题:当使用idea自动生成的web.xml文件配置 ...

  7. 运行JSP页面显示 404

    运行JSP页面显示404,这种情况下可能是没有导入jar包 按照如下操作导入jar包 1.在项目下创建一个文件夹,命名为lib(此步骤 可以省略,不一定非要是放在lib下,只要把jar包导入项目即可 ...

  8. 关于springmvc 只能在index.jsp页面显示图片的处理办法jsp页面无法显示图片

    首先,已经配置好了mvc对静态资源的处理 只有index,jsp可以显示图片 其他页面同样的代码则不显示 后来折腾了半天,发现 index是static的父目录的级别文件 可以向下访问 但是其他的js ...

  9. jsp页面显示超链接的时候关于路径得问题——jsp无法实现页面跳转问题 总结

    今天在做一个网页项目的时候还真的遇到一个问题,可能是由于自己还是新手吧,没有什么经验,或者说是自己得只是还没与学到家还是一只菜鸟,不多说废话,看项目. 要做的是一个用户登陆界面,并在上面实现页之间得跳 ...

最新文章

  1. VC提前注入.net软件的方法
  2. 普通话书籍计算机辅助,计算机辅助普通话水平测试指南
  3. phpexcel.php实际应用,PHP操作excel的一个例子(原创)-PHP教程,PHP应用
  4. 笨方法“学习python笔记之条件控制
  5. linux复制文件属性不变例子,linux中文件系统属性chattr权限
  6. vue - rimraf
  7. 具体问题具体分析 之 QA票
  8. 【MySQL性能优化的21个最佳实践】
  9. 图解wordpress模板架构
  10. JAVA 实现《俄罗斯方块》游戏|CSDN创作打卡
  11. Android原生游戏开发:使用JustWeEngine开发微信打飞机
  12. 常见计算机录制屏幕软件名称,录制电脑屏幕视频的软件有什么?
  13. Python爬虫,4567电影网电影信息爬取,二级页面处理方案
  14. FreeMarker源码分析(八)
  15. 程序员的福利:使用WebCollector爬取某美女网站上的图片
  16. Dojo: Quick Start
  17. pandoc 使用方法
  18. linux中使用U盘拷贝
  19. 【数智化人物展】网智天元莫倩:“感、联、知、控”,四步方可打造企业数智化转型升级路径...
  20. 电话机器人成骚扰机器?程序员可不背锅

热门文章

  1. 数据分箱技术在Python中实现
  2. VTK:地标变换用法实战
  3. wxWidgets:进程间通信
  4. 一个简单的你好,世界! 使用 Boost.MPI broadcast() 的示例
  5. boost::math::arcsine用法的测试程序
  6. boost::hana::experimental::type_name用法的测试程序
  7. GDCM:获取SubSequence数据的测试程序
  8. VTK:Snippets之RestoreSceneFromFile
  9. VTK:PolyData之MergeSelections
  10. VTK:几何对象之OrientedCylinder