ava JFreeChart createAreaChart生成折线图报表代码


折线图效果图:

import java.awt.Color;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.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.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RectangleInsets;

public class AreaChartServlet extends HttpServlet {

 private static final long serialVersionUID = 5852523271721922574L;
 public AreaChartServlet() {
  super();
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  this.doPost(request, response);
 }
 
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  // 设置返回类型为图片
  response.setContentType("image/png");
  // 获取数据集对象
  CategoryDataset dataset = createDataset();
  // 创建图形对象
  JFreeChart jfreechart = ChartFactory.createAreaChart("08年图书销售量排名",
    "按季度", "销量", dataset, PlotOrientation.VERTICAL, true, true,
    false);
  // 获得图表区域对象
  CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
  //设置前景色为50%透明
  categoryplot.setForegroundAlpha(0.5F);
  //设置X轴偏移量
  categoryplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
  //设置北景色为浅灰色
  categoryplot.setBackgroundPaint(Color.lightGray);
  //设置显示网格线
  categoryplot.setDomainGridlinesVisible(true);
  //设置网格线为白色
  categoryplot.setDomainGridlinePaint(Color.white);
  //设置显示边界线
  categoryplot.setRangeGridlinesVisible(true);
  //设置显示边界线为白色
  categoryplot.setRangeGridlinePaint(Color.white);
  //获得X轴对象
  CategoryAxis categoryaxis = categoryplot.getDomainAxis();
  //设置X轴标签位置为45度角
  categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
  //设置与X轴的补白为0
  categoryaxis.setLowerMargin(0.0D);
  categoryaxis.setUpperMargin(0.0D);
  
  // 将图表已数据流的方式返回给客户端
  ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,
    500, 270);

 }
 /**
  * 返回数据集
  *
  * @return
  */
 private static CategoryDataset createDataset() {
  // 时间维度
  String[] category1 = { "第一季度", "第二季度", "第三季度", "第四季度" };
  // 分类维度
  String[] category2 = { "JAVA", "C/C++", "PHP" };
  DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();
  for (int i = 0; i < category1.length; i++) {
   String category = category1[i];
   for (int j = 0; j < category2.length; j++) {
    String cat = category2[j];
    // 模拟添加数据
    defaultdataset.addValue(DataUtils.getRandomData(), cat, category);
   }
  }
  return defaultdataset;
 }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值