1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java使用jfreechart画饼图_使用 jfreechart 生成 曲线 柱状图 饼状图 分布图 展示到JSP-2...

Java使用jfreechart画饼图_使用 jfreechart 生成 曲线 柱状图 饼状图 分布图 展示到JSP-2...

时间:2021-12-08 02:18:58

相关推荐

Java使用jfreechart画饼图_使用 jfreechart 生成 曲线 柱状图 饼状图 分布图 展示到JSP-2...

柱状分布统计图:packagecom.xidian.servlet;

importjava.awt.Color;

importjava.awt.Font;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.jfree.chart.ChartFactory;

importorg.jfree.chart.ChartUtilities;

importorg.jfree.chart.JFreeChart;

importorg.jfree.chart.axis.CategoryAxis;

importorg.jfree.chart.axis.NumberAxis;

importorg.jfree.chart.plot.CategoryPlot;

importorg.jfree.chart.plot.PlotOrientation;

importorg.jfree.chart.renderer.category.BarRenderer;

importorg.jfree.chart.title.TextTitle;

importorg.jfree.data.category.DefaultCategoryDataset;

/**

*柱状分布统计图

*@说明

*@authorcuisuqiang

*@version1.0

*@since

*/

@SuppressWarnings("serial")

publicclassParagraphsServletextendsHttpServlet{

protectedvoidservice(HttpServletRequestrequest,

HttpServletResponseresponse)throwsServletException,IOException{

response.setContentType("text/html");

DefaultCategoryDatasetdataTime=newDefaultCategoryDataset();

//这是一组数据

dataTime.addValue(52,"0-6","-1-1");

dataTime.addValue(86,"6-12","-1-1");

dataTime.addValue(126,"12-18","-1-1");

dataTime.addValue(42,"18-24","-1-1");

//这是一组数据

dataTime.addValue(452,"0-6","-1-2");

dataTime.addValue(96,"6-12","-1-2");

dataTime.addValue(254,"12-18","-1-2");

dataTime.addValue(126,"18-24","-1-2");

//这是一组数据

dataTime.addValue(256,"0-6","-1-3");

dataTime.addValue(86,"6-12","-1-3");

dataTime.addValue(365,"12-18","-1-3");

dataTime.addValue(24,"18-24","-1-3");

try{

DefaultCategoryDatasetdata=dataTime;

//使用ChartFactory创建3D柱状图,不想使用3D,直接使用createBarChart

JFreeChartchart=ChartFactory.createBarChart3D(

"网站时间段访问量统计",

"时间",

"访问量",

data,

PlotOrientation.VERTICAL,

true,

false,

false

);

//设置整个图片的背景色

chart.setBackgroundPaint(Color.PINK);

//设置图片有边框

chart.setBorderVisible(true);

Fontkfont=newFont("宋体",Font.PLAIN,12);//底部

FonttitleFont=newFont("宋体",Font.BOLD,25);//图片标题

//图片标题

chart.setTitle(newTextTitle(chart.getTitle().getText(),titleFont));

//底部

chart.getLegend().setItemFont(kfont);

//得到坐标设置字体解决乱码

CategoryPlotcategoryplot=(CategoryPlot)chart.getPlot();

categoryplot.setDomainGridlinesVisible(true);

categoryplot.setRangeCrosshairVisible(true);

categoryplot.setRangeCrosshairPaint(Color.blue);

NumberAxisnumberaxis=(NumberAxis)categoryplot.getRangeAxis();

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

BarRendererbarrenderer=(BarRenderer)categoryplot.getRenderer();

barrenderer.setBaseItemLabelFont(newFont("宋体",Font.PLAIN,12));

barrenderer.setSeriesItemLabelFont(1,newFont("宋体",Font.PLAIN,12));

CategoryAxisdomainAxis=categoryplot.getDomainAxis();

/*------设置X轴坐标上的文字-----------*/

domainAxis.setTickLabelFont(newFont("sans-serif",Font.PLAIN,11));

/*------设置X轴的标题文字------------*/

domainAxis.setLabelFont(newFont("宋体",Font.PLAIN,12));

/*------设置Y轴坐标上的文字-----------*/

numberaxis.setTickLabelFont(newFont("sans-serif",Font.PLAIN,12));

/*------设置Y轴的标题文字------------*/

numberaxis.setLabelFont(newFont("宋体",Font.PLAIN,12));

/*------这句代码解决了底部汉字乱码的问题-----------*/

chart.getLegend().setItemFont(newFont("宋体",Font.PLAIN,12));

ChartUtilities.writeChartAsJPEG(response.getOutputStream(),1.0f,

chart,500,300,null);

}catch(Exceptiones){

es.printStackTrace();

}

}

}

JSP上使用IMG图片来请求Servlet显示图片:

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

HTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

WEB.xml配置:<?xml version="1.0"encoding="UTF-8"?>

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/xml/ns/javaee

/xml/ns/javaee/web-app_2_5.xsd">

EncodingFilter

org.filter.EncodingFilter

EncodingFilter

/*

LineServlet

com.xidian.servlet.LineServlet

PillarServlet

com.xidian.servlet.PillarServlet

ParagraphsServlet

com.xidian.servlet.ParagraphsServlet

CakeServlet

com.xidian.servlet.CakeServlet

LineServlet

/LineServlet

PillarServlet

/PillarServlet

ParagraphsServlet

/ParagraphsServlet

CakeServlet

/CakeServlet

index.jsp

为了解决乱码问题,我配置了一个过滤器:packageorg.filter;

importjava.io.IOException;

importjavax.servlet.Filter;

importjavax.servlet.FilterChain;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

/**

*处理乱码

*@说明

*@authorcuisuqiang

*@version1.0

*@since

*/

publicclassEncodingFilterimplementsFilter{

publicvoiddestroy(){

}

publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,

FilterChainchain)throwsIOException,ServletException{

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

chain.doFilter(request,response);

}

publicvoidinit(FilterConfigarg0)throwsServletException{

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。