JavaWeb饼图的绘制



import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;


import com.bjsxt.util.ChartUtil;


/**
 * 后台程序
 *  img 标签中的src属性的值  需要在作用域中获取
 *  将img标签中src属性的值存放到作用域中
 * @author zhangpanpan
 * 
 * servlet{
 *  1.配置  Anno 注解   出错 webserive
 *  2.extends HttpServlet
 *  3.重写service方法
 *  4.设置编码集合
 */


@WebServlet("/rf")
public class PieServlet extends HttpServlet{

/**
* 定义其版本号
*/
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置编码格式  set 设置   get 获取 remove 删除
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取作用域
HttpSession session=request.getSession();
//需要饼图,饼图还需要存放数据
JFreeChart chart=createPieChart(createPieDs());
System.out.println("chart:"+chart);
//将img标签中src属性的值存放到作用域中  图片的路径
//获取图片的名称
String fileName=ServletUtilities.saveChartAsPNG(chart, 600,500,session);
System.out.println(fileName);
//url地址
String graphURL=request.getContextPath()+"/dc?filename="+fileName;
//存放作用域
session.setAttribute("graphURL", graphURL);
//跳转页面
request.getRequestDispatcher("index.jsp").forward(request,response);
}
/**
* 创建饼图对象
* @param createPieDs
* @return
*/
    private JFreeChart createPieChart(PieDataset createPieDs) {
JFreeChart chart=ChartFactory.createPieChart("从事行业分析",createPieDs,true, true, false);
//美化
ChartUtil.beautifulPieChart(chart);
return chart;
}
/**
     * 用来给创建的饼图对象提供数据
     * @returnv  存放数据
     */
private PieDataset createPieDs() {
//创建默认的数据集合
DefaultPieDataset dataset=new DefaultPieDataset();
//给dataset对象中存放数据
dataset.setValue("IT与通讯业",15);
dataset.setValue("房地产",25);
dataset.setValue("金融证券",8);
dataset.setValue("商贸业",12);
dataset.setValue("医药食品业",8);
dataset.setValue("石油化工业",12);
dataset.setValue("旅游交通",7);
dataset.setValue("其他",13);
return dataset;
}

}

<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>/dc</url-pattern>
 </servlet-mapping>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
web页上绘制饼图曲线图等组件(c#) 例子: 生成饼图表******************************************** private void InitializeComponent() { this.myBarGraph.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(this.OnRenderGraphBar); this.myLineGraph.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(this.OnRenderGraphLine); } private void OnRenderGraphBar(ZedGraphWeb zgw, System.Drawing.Graphics g, ZedGraph.MasterPane masterPane) { myBarMethod(zgw, g, masterPane, strYear, strMonth, compareType); } private void OnRenderGraphLine(ZedGraphWeb zgw, System.Drawing.Graphics g, ZedGraph.MasterPane masterPane) { myLineMethod(zgw, g, masterPane, douYear, douMonth); } private void myBarMethod(ZedGraphWeb zgw, System.Drawing.Graphics g, ZedGraph.MasterPane masterPane, string[] strYear, string[] strMonth, string compareType) { GraphPane myPane = masterPane[0]; myPane.Title.Text = title + "柱状图分析"; myPane.XAxis.Title.Text = "时间(月/年)"; if (compareType == "AddValue") { myPane.YAxis.Title.Text = "增加值"; } else { myPane.YAxis.Title.Text = "增加比例(%)"; } List<PointPairList> ListPointParitList = new List<PointPairList>(); for (int i = 0; i < strYear.Length; i++) { ListPointParitList.Add(new PointPairList()); } int n = 0; for (double x = 0; x < strMonth.Length; x += 1.0) { for (int i = 0; i < strYear.Length; i++) { //ListPointParitList[i].Add(x, randNum[n++] * multiplyValue); ListPointParitList[i].Add(x, GetFXData(strYear[i], strMonth[(int)x])); } } List<BarItem> ListBarItem = new List<BarItem>(); List<Color> ListColor = GetColor(); for (int i = 0; i < strYear.Length; i++) { ListBarItem.Add(new BarItem(strYear[i], ListPointParitList[i], ListColor[i])); ListBarItem[i] = myPane.AddBar(strYear[i], ListPointParitList[i], ListColor[i]); } myPane.XAxis.MajorTic.IsBetweenLabels = true; myPane.XAxis.Scale.TextLabels = strMonth; myPane.XAxis.Type = AxisType.Text; myPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f); myPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, 45.0f); masterPane.AxisChange(g); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值