1. 程式人生 > >JavaWeb圖形報表折線圖

JavaWeb圖形報表折線圖

步驟說明:
1,匯入log4j.jar,jfreechart-0.9.18.jar,jdom.jar,jcommon-0.9.3.jar四個jar包

2,在某個包中寫入Tuxin.java類

package com.mengya.util;

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

import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardLegend;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.LineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.DefaultCategoryDataset;

public class Line
{
   private DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    
   public void setValue(int sum, String line, String wfield)
   {
  
     dataset.addValue(sum, line, wfield);
    
   }
  
   public String generateLineChart(String title,String wfield, String hfield, HttpSession session, PrintWriter pw,int wPhoto,int hPhoto)
    {
     String filename = null;
   
    try
     {
         final JFreeChart chart = ChartFactory.createLineChart
           (
              title, // 圖表標題
              wfield, // 橫軸的顯示標籤
              hfield, // 縱軸的顯示標籤
              dataset, //資料集
              PlotOrientation.VERTICAL, // 圖表方向:水平、垂直
              true, // 是否顯示圖例
              true, // 是否生成提示工具 tooltips
              false // 是否生成URL連結
         );
         StandardLegend legend = (StandardLegend) chart.getLegend();//生成圖例
         legend.setDisplaySeriesShapes(true);//顯示圖例形狀
         legend.setShapeScaleX(1.5);//設定圖例X軸的大小
         legend.setShapeScaleY(1.5);//設定圖例Y軸的大小
         legend.setDisplaySeriesLines(true);//顯示圖示項的橫線
         //設定圖片的背景色
         chart.setBackgroundPaint(new java.awt.Color(189,235,255));

         CategoryPlot plot = (CategoryPlot) chart.getPlot();
         plot.setBackgroundPaint(new Color(239,251,255));//生成圖片中牆體的背景色
         plot.setRangeGridlinePaint(Color.black);//生成圖片中格子線的顏色
        
         // 沒有資料時顯示的訊息
         plot.setNoDataMessage("沒有相關統計資料"); 
         plot.setNoDataMessageFont(new Font("黑體", Font.CENTER_BASELINE, 16));
         plot.setNoDataMessagePaint(Color.RED);
        
         NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
         rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//設定圖中的刻度線的單位
         rangeAxis.setAutoRangeIncludesZero(true);//強制在自動選擇的資料範圍中包含0
        
         LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
         renderer.setDrawShapes(true);//折線的資料點根據分類使用不同的形狀
         renderer.setItemLabelsVisible(true);//顯示每個點上的資料值的提示工具,資料標籤是否可見
        
        
         ChartRenderingInfo info = new ChartRenderingInfo(new
              StandardEntityCollection());
          //500是圖片長度,300是圖片高度
          filename = ServletUtilities.saveChartAsPNG(chart, wPhoto, hPhoto, info, session);
          ChartUtilities.writeImageMap(pw, filename, info);
          pw.flush();
     }
     catch(Exception e)
     {
      e.printStackTrace();
     }
     return filename;
    }
}

3,配置web.xml,在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>/DisplayChart</url-pattern>
 </servlet-mapping>

4,在要顯示圖片的jsp中新增內容:
  <%@ page language="java" import="java.util.*,com.mengya.util.Line,com.mengya.bean.StuBean" pageEncoding="gbk"%>
<%@page import="java.io.PrintWriter;"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>折線圖</title>
 </head>

 <body>
  <%
   Line tt = new Line();
   //第一條折線
   List ar = (ArrayList) request.getAttribute("arr1");
   for (int i = 0; i < ar.size(); i++) {
    StuBean bean = (StuBean) ar.get(i);
    tt.setValue((int) bean.getS_money(), "張明學個人消費比例圖", bean.getS_month()+ "");
   }
   
   //條二條折線
   ar = (ArrayList) request.getAttribute("arr2");
   for (int i = 0; i < ar.size(); i++) {
    StuBean bean = (StuBean) ar.get(i);
    tt.setValue((int) bean.getS_money(), "夢婭個人消費比例圖", bean.getS_month()+ "");
   }
   
   //說明:tt.setValue(int a,String b,String c)
   //其中的第二個引數b是該條折線的名字,每條折線的名字最好不要一樣.
   
   String filename = tt.generateLineChart("個人消費比例圖", "月      份",
     "費      用", session, new PrintWriter(out), 800, 550);

   String graphURL = request.getContextPath()
     + "/DisplayChart?filename=" + filename;
  %>
  <P ALIGN="CENTER">
  <img src="<%=graphURL %>" width=800 height=550 border=1 usemap="#<%=filename%>">
 </body>
</html>

相關推薦

JavaWeb圖形報表折線

步驟說明: 1,匯入log4j.jar,jfreechart-0.9.18.jar,jdom.jar,jcommon-0.9.3.jar四個jar包 2,在某個包中寫入Tuxin.java類 package com.mengya.util; import java.awt.Color; import jav

javaweb EChart繪製折線

首先引入echart的js包: <script type="text/javascript" src="front/resource/js/echarts.min.js"></script> <script type="text/javasc

WPF 柱狀報表報表區域折線報表橫向柱狀報表折線報表

介紹Toolkit控制元件中的5種資料報表圖,推薦給大家。本文基本上用的是google機器翻譯,如果有哪不通順,請指正 :)他們分別是:柱狀圖報表餅圖報表區域折線圖報表橫向柱狀圖報表折線圖報表以下是該控制元件的介紹,本文是翻譯的國外大神的作品,分享出來,也方便自己日後的使用

Echarts 簡單報表系列二:折線

pic mage ems utf value ott fun nbsp return <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

報表(帆軟)設計——巧用組合折線

只需要 原因 但是 最大值 可能 添加數據 變化 報表 如何使用 使用場景: 只需要折線圖,多個系列,每個系列的值差別很大(例如 系列1:0.08;系列2:8000),這樣的值不能使用同一個坐標軸(所以不能使用折線圖)。 如何使用:   1.新建一個自定義組合圖,加入有

react-charts實現折線等等各種圖形(推薦使用案例二,比較容易操作)

(一)react-charts案例一 一.案例學習網址: https://react-charts.js.org/examples/line 二.原始碼下載網址: https://github.com/react-tools/react-charts 三.具體詳情使用 1.比

美解決echarts的柱狀折線的點選非圖表圖形元素不會觸發事件

在涉及到圖示的開發中,相信大家經常會用到echarts,echarts中可以通過on方法新增事件處理函式,可以很方便的實現一些互動。如: 但是直接新增的click事件,只有點選在圖形元素上才會觸發事件處理函式。以柱狀圖和折線圖為例: 在上述兩張圖中,只

Echarts報表折線

參考:官方教程  配置項 最近使用折線圖和餅圖居多,使用時一般要修改其預設格式 ECharts 3 開始不再強制使用 AMD 的方式按需引入,程式碼裡也不再內建 AMD 載入器。因此引入方式簡單了很多,只需要像普通的 JavaScript 庫一樣用 scr

使用ECharts實現各種資料統計(餅,柱狀折線)在javaWeb中的應用

具體的資源及頁面程式碼可下載  http://download.csdn.net/download/dll322/9912507 準備工作:要下載ECharts的原始檔 第一步:在web端既新建一個jsp頁面 第二步:引入ECharts的js 第三步:為EChart

完美解決echarts的柱狀折線的點選非圖表圖形元素不會觸發事件

在涉及到圖示的開發中,相信大家經常會用到echarts,echarts中可以通過on方法新增事件處理函式,可以很方便的實現一些互動。如: 但是直接新增的click事件,只有點選在圖形元素上才會觸發事件處理函式。以柱狀圖和折線圖為例: 在上述兩張圖中,只有點選柱狀圖形

iOS 中各種折線.曲線.圖形繪製方法集錦(折線.走勢.柱狀.動態曲線圖.形狀.劃線)

前言 具體實現如下: 目錄 前言 第一 折線圖實現 .1) 自定義檢視實現 .2)關鍵技術實現 .3) 方法呼叫 .4) 效果展示 第二 走勢曲線圖實現 .1) 匯入DJChart第三方庫 .2)

ireport5.0圖形報表--柱狀

最近在做ireport柱狀圖顯示用於顯示客戶滿意度情況 根據條件進行分組,顯示每個分組的滿意度。分組求和可以直接在分組頭中拉入欄位,然後選擇計算項,求和或求平均值等比較容易。 對滿意度求和,顯示總的滿意度情況。不分組求和,就只能定義一個變數,類似java的迴圈求和。 這裡用

ASP.NET+JQuery+.Ashx實現+百度Echarts 實現動態柱狀資料圖形報表的統計

在目前的一個專案中,需要用到報表表現資料,這些資料有多個維度,需要同時表現出來,同時可能會有大量資料呈現的需求,經過幾輪挑選,最終選擇了百度的echarts作為報表基礎類庫。echarts功能強大,介面優美。要呈現的資料就用柱狀圖來顯示了,柱狀圖更直觀的顯示出客戶最想要的東

iOS圖形繪製 UIBezierPath 繪製折線、柱狀、餅形

iOS圖形繪製 UIBezierPath 繪製折線圖、柱狀圖以及餅形圖(感謝Mr_Wendao,如果想檢視餅形圖原始碼請點選連線,餅形圖我借鑑了Mr_Wendao的程式碼學習,再次感謝)。 先看一下程式碼的效果圖 如下圖 下面是主要程式碼 在初始化

JQuery_HighCharts生成圖形報表_餅狀(模仿後臺傳送資料 JSON格式)

這幾天博主做了個需求,需要將圖形統計的資料以報表的形式顯示出來: HighChart 功能: Highcharts 雲服務提供簡單便捷的方法生成視覺化圖表,使用者不再需要程式設計基礎,只需要複製資料即可生成漂亮,可定製的圖表。雲服務提供圖表生成,託管,分享等功能。 主要

常見圖形:(箱線,柱狀,散點折線...)searborn+ matplotlib

# -*- coding: utf-8 -*- import seaborn as sns import numpy as np #------------------------顯示中文---------------------------------#

計算機圖形學(二)輸出元_20_章節總結_程式展示_折線和直方圖

折線圖和直方圖        第一個程式展示使用一條折線、一組多點標記和點陣圖字元標號來生成一年內按月的折線圖。儘管等寬字型與圖中的位置比較容易對齊,但此處給出了比例空間的字型。由於點陣圖左下角提供了當前光柵位置的參考,所以我們必須移動參考位置以使文字串中心與繪製資料的位置

JavaWeb視覺化:Web+Echarts案例:豆瓣日劇豆列電影資訊視覺化(柱狀、餅狀折線

柱狀圖案例 柱狀圖用來比較多專案的數值情況,從構成上來說,柱狀圖以座標軸上的長方形元素作為變數,以此來達到展現並比較資料情況的目的。柱狀圖形式多種多樣,以適應不同場合資料展示,常用的有如下形式: 常用配置項引數: title:標題元件,包含主標題和副標題。 t

Python開發【模塊】:matplotlib 繪制折線

ins inux cnblogs linux linu free logs strong use matplotlib 1、安裝matplotlib ① linux系統 # 安裝matplotlib模塊 $ sudo apt-get install python-ma

JfreeChart折線 CSDN-李鵬飛

.net comment ans minimum sage 日期格式 .info n) 學校 今天公司裏分配給我的工作是JfreeChart折線圖本人之前也沒接觸過如今讓我們大家一起完畢! 在這個公司,用到了太多的JfreeChart,今天就對折線圖作一個總結,希望