java图片波浪卷_JFreeChart中的波浪图

本文介绍如何在Java中利用JFreeChart库创建具有波浪效果的图表。示例代码展示了如何设置图表参数,如标题、字体、数据集,并呈现一个动态的时序图。此外,还提供了生成假数据的辅助类DataUtils。
摘要由CSDN通过智能技术生成

JFreeChart中的波浪图

2015/4/19 15:27:41  357029540  程序员俱乐部  我要评论(0)

摘要:在Servlet中的代码:packagecom.lyb.pic;importjava.awt.BasicStroke;importjava.awt.Font;importjava.io.IOException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.jfree

标签:

在Servlet中的代码:

package com.lyb.pic;

import java.awt.BasicStroke;

import java.awt.Font;

import java.io.IOException;

importjavax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

import org.jfree.data.general.SeriesException;

import org.jfree.data.time.Day;

import org.jfree.data.time.TimeSeries;

import org.jfree.data.time.TimeSeriesCollection;

import org.jfree.data.xy.XYDataset;

public class Time extends HttpServlet{

public voiddoGet(HttpServletRequest request,HttpServletResponse response)throws IOException {

doPost(request,response);

}

public void doPost(HttpServletRequestrequest,HttpServletResponse response) throws IOException {

//设置返回类型

response.setContentType("image/png");

//设置返回字体

response.setCharacterEncoding("utf-8");

//获取数据集对象

XYDataset xyd =getData();

// 创建图形对象

JFreeChart jfc =ChartFactory.createTimeSeriesChart("时序图","POLO历史价格", "价格", xyd,true, true, false);

//设置标题字体,防止中文乱码

jfc.getTitle().setFont(newFont("黑体", 0, 15));

//设置图例的字体,防止中文乱码

jfc.getLegend().setItemFont(newFont("黑体", 0, 15));

//获取图表区域对象

XYPlot xyplot = (XYPlot)jfc.getPlot();

//设置横轴标签的字体,防止中文乱码

xyplot.getDomainAxis().setLabelFont(newFont("黑体", 0, 15));

//设置竖轴标签的字体,防止中文乱码

xyplot.getRangeAxis().setLabelFont(newFont("黑体", 0, 15));

//获得折线显示对象

XYLineAndShapeRendererxylineandshaperenderer = new XYLineAndShapeRenderer();

//设置不显示折线

xylineandshaperenderer.setBaseShapesVisible(false);

//设置折线的粗细

xylineandshaperenderer.setSeriesStroke(0,new BasicStroke(0.5F, 1, 1, 5F, new float[] { 5F, 10F },0.0F));

xyplot.setRenderer(xylineandshaperenderer);

// 将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(response.getOutputStream(),jfc,500, 270);

}

private static XYDataset getData() {

//创建时序对象

TimeSeries timeseries = newTimeSeries("动画");

//初始化日期为1990年1月1日

Day day = new Day(1, 1,1990);

double d = 100D;

//添加数据,用于标识横轴的显示数字

for (int i = 0; i< 4000; i++)

try {

//随机取出100附近数

d= (d + Math.random()) - 0.5D;

//添加到时序对象

timeseries.add(day,new Double(d));

//之后的一天

day= (Day) day.next();

} catch(SeriesException seriesexception) {

}

//返回XYDataset数据集

return newTimeSeriesCollection(timeseries);

}

}

产生的假数据:

package com.lovo.pic;

import java.util.Random;

public class DataUtils {

private static Random random = newRandom();

private static final int NUMBER = 100;

public static int getNumber() {

returnrandom.nextInt(NUMBER);

}

}

在xml中的代码:

time

com.lovo.pic.Time

time

/time

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值