亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java類中使用Jfreechart的簡單實例

2019-11-26 16:00:43
字體:
來源:轉載
供稿:網友

package com.chart.test;

復制代碼 代碼如下:

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

import javax.servlet.http.HttpSession;

import oracle.jrockit.jfr.openmbean.JFRStatsType;

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.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
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.category.LineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RectangleEdge;


public class ChartTest
{
public static void main(String[] args){
ChartTest test=new ChartTest();
test.generateFile(test.getChart());
}

public JFreeChart getChart(){
String series1 ="First";
String series2 ="Second";

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";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D, series1, type1);
defaultcategorydataset.addValue(4D, series1, type2);
defaultcategorydataset.addValue(3D, series1, type3);
defaultcategorydataset.addValue(5D, series1, type4);
defaultcategorydataset.addValue(5D, series1, type5);
defaultcategorydataset.addValue(7D, series1, type6);
defaultcategorydataset.addValue(7D, series1, type7);


defaultcategorydataset.addValue(5D, series2, type1);
defaultcategorydataset.addValue(7D, series2, type2);
defaultcategorydataset.addValue(6D, series2, type3);
defaultcategorydataset.addValue(8D, series2, type4);
defaultcategorydataset.addValue(4D, series2, type5);
defaultcategorydataset.addValue(4D, series2, type6);
defaultcategorydataset.addValue(2D, series2, type7);


JFreeChart jfreechart = ChartFactory.createLineChart("Line Chart Demo 1","Type","Value",defaultcategorydataset,PlotOrientation.VERTICAL,true,true,false);
//  ChartFactory.createLineChart(title, categoryAxisLabel, valueAxisLabel, dataset, orientation, legend, tooltips, urls)
//  上面語句legend設置為false時,表示新建的jfreechart無圖例,為true時,自帶圖例,默認位置為底部。
jfreechart.getLegend().setPosition(RectangleEdge.RIGHT);//獲取圖例,設置位置

//  LegendTitle legendTitle = new LegendTitle(jfreechart.getPlot());//創建圖例,若有默認的,仍然創建,此時存在兩個。
//  legendTitle.setPosition(RectangleEdge.RIGHT);//設置圖例的位置
//  jfreechart.addLegend(legendTitle);//圖表中添加圖例

jfreechart.setBackgroundPaint(Color.white);//設置圖例的背景色

CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();

categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setDomainGridlinesVisible(true);
categoryplot.setRangeGridlinesVisible(true);
categoryplot.setDomainGridlinePaint(Color.white);//設置橫坐標網格線
categoryplot.setRangeGridlinePaint(Color.white);//設置縱坐標網格線

// 1、對標題
Font font1 = new Font("黑體",Font.BOLD, 14); // 設定字體、類型、字號
jfreechart.getTitle().setFont(font1); // 標題

// 3、下面的方塊區域是 LegendTitle 對象
Font font3 = new Font("隸書",Font.BOLD, 12); // 設定字體、類型、字號
jfreechart.getLegend().setItemFont(font3);// 最下方
// 這是處理Plot里面的橫軸,同理可以正理豎軸
CategoryAxis categoryaxis = categoryplot.getDomainAxis(); // 橫軸上的
//縱坐標換行顯示
//  categoryaxis.setMaximumCategoryLabelLines(10);//行數,根據需要自己設
//  categoryaxis.setMaximumCategoryLabelWidthRatio(0.5f);//每行寬度,這里設一個漢字寬

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);// 45度傾斜,可以改成其他,默認是水平

NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());// 數據軸的數據標簽(可以只顯示整數標簽,需要將AutoTickUnitSelection設false)
numberaxis.setAutoRangeIncludesZero(true);//是否強制在自動選擇的數據范圍中包含0

categoryaxis.setTickLabelFont(new Font("SansSerif",Font.BOLD, 12));//坐標軸標尺值字體
numberaxis.setTickLabelFont(new Font("SimSun", Font.BOLD, 12));//
// 2、對圖里面的漢字設定,也就是Plot的設定
Font font2 = new Font("SimSun", Font.BOLD, 16); // 設定字體、類型、字號
categoryaxis.setLabelFont(font2);//坐標軸標題字體
numberaxis.setLabelFont(font2);

 

LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
lineandshaperenderer.setShapesVisible(true); //series 點(即數據點)可見

lineandshaperenderer.setSeriesStroke(0, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
10F, 6F
}, 0.0F)); //定義series為"First"的(即series1)點之間的連線 ,這里是虛線,默認是直線
lineandshaperenderer.setSeriesStroke(1, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
6F, 6F
}, 0.0F)); //定義series為"Second"的(即series2)點之間的連線

return jfreechart;    //返回Jfreechart
}

public void generateFile(JFreeChart chart){
  String fileName = null;
  try {
    ChartUtilities.saveChartAsJPEG(new File("C://PieChart.jpg"),chart,600,600); //生成圖表文件到指定位置
  } catch (IOException e)
  {
  e.printStackTrace();
  }
}
public String getFileName(JFreeChart chart,HttpSession session,PrintWriter pw){
  String fileName = null;
  ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
  try {
    fileName = ServletUtilities.saveChartAsPNG(chart, 700, 450, info, session);  //生成臨時文件
    ChartUtilities.writeImageMap(pw, fileName, info, false);
    pw.flush();
  }
  catch (IOException e)
  {
  e.printStackTrace();
  }

  //  String graphURL = request.getContextPath()+ "/servlet/DisplayChart?fileName=" + fileName;
  //  request.setAttribute("fileName",fileName);
  // request.setAttribute("graphURL",graphURL);
  return fileName;//返回生成圖片的文件名 ,傳入jsp
 }

}


jsp中使用:
復制代碼 代碼如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.chart.test.*"%>
<%@ page import = "java.io.PrintWriter" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
ChartTest chart=new ChartTest();
String fileName=chart.getFileName(chart.getChart(), session, new PrintWriter(out));
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + fileName;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'JspChart.jsp' starting page</title>
</head>

<body>

<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="<%= fileName %>">
</body>
</html>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人精品电影| 国产精品久久久久久亚洲影视| 久久精品中文字幕| 久久精品99国产精品酒店日本| 亚洲情综合五月天| 2020欧美日韩在线视频| 色狠狠av一区二区三区香蕉蜜桃| 91高清在线免费观看| 中文字幕欧美日韩va免费视频| 久久99视频免费| 精品国产91乱高清在线观看| 日韩视频在线免费观看| 国产精品入口免费视| 国产精品影片在线观看| 夜夜躁日日躁狠狠久久88av| 91亚洲精品久久久| 亚洲成人激情在线观看| 亚洲午夜未满十八勿入免费观看全集| 欧美性猛交99久久久久99按摩| 精品国产乱码久久久久久虫虫漫画| 成人精品aaaa网站| 97香蕉超级碰碰久久免费的优势| 欧美成人免费一级人片100| 亚洲乱码一区av黑人高潮| 亚洲国产一区自拍| 亚洲性线免费观看视频成熟| www.亚洲人.com| 亚洲成人激情视频| 亚洲高清福利视频| 久久99久国产精品黄毛片入口| 尤物tv国产一区| 91国内产香蕉| 精品少妇一区二区30p| 中文字幕日韩欧美精品在线观看| 久久久久99精品久久久久| 欧美日韩国产中文精品字幕自在自线| 久久6免费高清热精品| 国产丝袜精品视频| 亚洲国产精品中文| 欧美电影免费播放| 欧美亚洲激情在线| 欧美日韩性视频在线| 久久久中精品2020中文| 亚洲视频自拍偷拍| 国外视频精品毛片| 欧美激情一级精品国产| 美女性感视频久久久| 亚洲欧美国产va在线影院| 亚洲成年人在线播放| 精品国产一区二区三区在线观看| 久久精品亚洲94久久精品| 日韩视频在线免费| 国内成人精品视频| 国内免费久久久久久久久久久| 欧美午夜xxx| 91产国在线观看动作片喷水| 日韩高清电影免费观看完整| 亚洲国产精品久久久久久| 欧美亚洲国产成人精品| 欧美亚洲国产视频小说| 国产精品视频内| 热久久99这里有精品| 亚洲国产精久久久久久久| 亚洲欧美日韩一区二区三区在线| 中文字幕免费精品一区| 日韩av快播网址| 久久精品国产亚洲精品| 国产精品亚洲自拍| 91久久久久久久久| 亚洲成人av片| 伊人伊人伊人久久| 亚洲精品永久免费精品| 性欧美在线看片a免费观看| 日韩在线www| 国产精品视频午夜| 欧美成人剧情片在线观看| 最近的2019中文字幕免费一页| 亚洲国产美女久久久久| 欧美老妇交乱视频| 18久久久久久| 亚洲一区美女视频在线观看免费| 91精品国产高清久久久久久91| 免费成人高清视频| 韩日精品中文字幕| 国产亚洲欧美一区| 午夜精品www| 亚洲va码欧洲m码| 亚洲欧美另类人妖| 精品欧美aⅴ在线网站| 精品久久久久久| 成人黄色av网站| 亚洲free嫩bbb| 国产精品精品久久久久久| 日韩成人激情在线| 一区二区中文字幕| 8050国产精品久久久久久| 日韩在线国产精品| 亚洲国产精品女人久久久| 国产精品成av人在线视午夜片| 亚洲福利影片在线| 日韩美女视频中文字幕| 国产精品午夜一区二区欲梦| 亚洲国产成人在线视频| 9.1国产丝袜在线观看| 亚洲综合一区二区不卡| 亚洲毛片在线观看| 亚洲国产成人av在线| 久久影院资源站| 亚洲国产另类 国产精品国产免费| 一本色道久久88综合亚洲精品ⅰ| 色系列之999| 国产午夜精品视频| 欧美色欧美亚洲高清在线视频| 欧美裸身视频免费观看| 欧美日韩亚洲系列| 亚洲精品视频久久| 久久久999精品免费| 国产精品美女久久| 国产精品三级美女白浆呻吟| 夜夜嗨av色综合久久久综合网| 久久久久久久国产精品| 国内精品久久久久影院 日本资源| 日本一区二区三区在线播放| 亚洲精品98久久久久久中文字幕| 国产亚洲精品久久久久久777| 高跟丝袜一区二区三区| 国产精品高精视频免费| 亚洲人成电影在线观看天堂色| 久久久久久av| 国产小视频国产精品| 欧美乱人伦中文字幕在线| 九九热视频这里只有精品| 91av网站在线播放| 久久国产精品视频| 欧洲成人在线视频| 亚洲四色影视在线观看| 视频一区视频二区国产精品| 亚洲人成毛片在线播放| 欧美激情视频免费观看| 91亚洲精品久久久久久久久久久久| 国产精品一久久香蕉国产线看观看| 国产精品白丝jk喷水视频一区| 欧美激情视频网址| 精品少妇v888av| 日日摸夜夜添一区| 国产精品免费久久久久久| 在线日韩日本国产亚洲| 色偷偷综合社区| 成人写真视频福利网| 亚洲人线精品午夜| 久久久www成人免费精品| 亚洲精品永久免费| 在线一区二区日韩| 欧美超级免费视 在线| 欧美寡妇偷汉性猛交| 国产成+人+综合+亚洲欧美丁香花| 久久99精品国产99久久6尤物| 97在线视频免费观看| 日韩中文字幕第一页| 日本韩国在线不卡| 97**国产露脸精品国产| 91九色综合久久| 久久夜色精品亚洲噜噜国产mv| 一本大道久久加勒比香蕉|