问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个数据统计图在程序

发布网友 发布时间:2022-09-29 19:07

我来回答

1个回答

热心网友 时间:2024-11-27 04:26

下面我要做的是一个饼状统计图,首先建立javaBean文件

文件名:Tryitshow.java

package com.tryit;

import java.io.*;
import java.awt.Insets;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.Locale;
import java.text.NumberFormat;
import javax.servlet.http.HttpSession;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.VerticalBarRenderer;
import org.jfree.chart.renderer.StandardXYItemRenderer;
import org.jfree.chart.plot.*;
import org.jfree.chart.entity.*;
import org.jfree.chart.tooltips.*;
import org.jfree.chart.urls.*;
import org.jfree.chart.servlet.*;
import org.jfree.chart.TextTitle;
import java.net.URL;

public class Tryitshow
{
public static String generatePieChart(String infoStr, String titles,HttpSession session, PrintWriter pw)
{
String filename = null;
Font font;

try {
// 建立PieDataSet
DefaultPieDataset data = new DefaultPieDataset();
String ss[]=infoStr.split(",");
for (int n=0;n<ss.length;n++)
{
String ssPart[]=ss[n].split("#");
int tt=Integer.parseInt(ssPart[1]);
String mm=ssPart[0];
data.setValue(mm,tt);
}

// 生成chart物件
PiePlot plot = new PiePlot(data);
plot.setInsets(new Insets(0, 5, 5, 5));

plot.setToolTipGenerator(new StandardPieToolTipGenerator());

font=new Font("黑体",Font.CENTER_BASELINE,20);//这个地方是设置统计图标题的字体和大小

JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);

TextTitle tt=new TextTitle(titles);
tt.setFont(font);
chart.setBackgroundPaint(java.awt.Color.white);//统计图片的底色
chart.setTitle(tt);

// 把生成的文件写入到临时的目录中
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
//选择存储成png格式的文件,当然你也可以使用saveChartAsJPEG的方法生成jpg图片

// 把image map 写入到 PrintWriter
ChartUtilities.writeImageMap(pw, filename, info);
pw.flush();
}
catch (Exception ex) {
System.out.println("error:"+ex.getMessage());
}
return filename;
}
}

接着是jsp文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import = "com.tryit.Tryitshow" %>
<%@ page import = "java.io.PrintWriter" %>
<%@ page import = "java.text.SimpleDateFormat" %>
<%@ page import = "java.text.ParseException" %>
<%@ page import = "java.util.ArrayList" %>
<%@ page import = "java.util.Date" %>
<%@ page import = "java.util.Iterator" %>
<%@ page import = "java.util.Locale" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<%
String filename = Tryitshow.generatePieChart("本科#100,专科#200","人才学历信息统计",session, new PrintWriter(out));

String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<BODY>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
</BODY>
</HTML> web.xml文件的配置

<web-app>
<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>
</web-app>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医生你好 我脸上跟额头上面长了很多小粉刺 请问这是什么原因引起的 要... 世界上到底是先有的鸡还是先有的蛋 请问是先有蛋,还是先有鸡? Excel怎么设置行高并且垂直 晚上梦见一条又长又小的青蛇追着咬我最后被我爸爸打死了代表什么... 专业技能怎么填我来教你 QQ空间曾经有一个左右接东西 小游戏叫什么名字 帽子先生接东西游戏介绍 趣味卡车接东西游戏介绍 怀孕50天B超的表现 二十个英文动画片 我的诺基亚N93i手机没有数据线,可以有用读卡器来下载音乐,请问大连市金 ... 手机的读卡器坏了怎么办?换一个价格大概多少 1G手机储存卡的价格和读卡器的一般价格 手机内置读卡器换一个大概多少钱 红米Note8Pro怎么样正在使用的程序里分屏回复信息 三月三吃荠菜煮鸡蛋由来 简介三月三吃荠菜煮鸡蛋由来 荠菜煮鸡蛋一定要三月三吃吗 荠菜煮鸡蛋必须是三月三吃吗 荠菜煮鸡蛋是农历三月三还是阳历三月三 荠菜煮鸡蛋什么时候吃最好 荠菜煮鸡蛋早上吃还是中午吃好 莲藕热量 莲藕的热量是多少 美图秀秀最新版静态文字水印怎么没有大红色了? 毕业设计题目:基于小波变换的静态图像数字水印技术的研究 请问可不可以用photoshop给视频文件添加静态或者动态水印? 宴组词 宴读音及解释 ecshop小京东楼层右上角自动调用的分类怎么删除 京东安卓手机客户端里常用分类怎么删除掉一些项目 京东常用分类中的内容如何清除? 京东常用分类怎么清除? 京东常用分类怎么删除 C#如何用一组数据制作统计图,要求每一行数据制作一个统计图表(如... 新买的美的电热水壶半年就漏水了,能换新货吗? 肚疼喝盐水为什么就好了 无耻之徒米奇什么时候出狱第十季 赵字的寓意和意义 赵字的寓意和意义有哪些 温州哪里有生产小饰品的厂家 中国哪里有制作小饰品的厂家吗?急求! 我想问一下义乌一些批发小饰品的厂家有哪货比较全的,我想直接从厂里拿... 创业史读后感 二十公斤的小变压器是怎么个把它给拆开的? 请问红米note8怎么进入极简桌面 中国移动卡欠费后会被怎么样? 小黄车的作文 单车的高考作文 2020年少儿险保费占比 变压器次级线圈如何拆? 急求变压器拆装步骤 因为前期工作做的好,得到肯定,后期带来了另外的收益,用成语怎么说 求教... 以前期工作的总结和验证用什么成语来形容 一项工作从前期准备到后面出成果 整个过程可以怎么形容