Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483172
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:31:15

以前用JFreeChart的时候每次都需要修改一些显示样式和代码,前段时间项目组要用,于是就进行了一次封装,把几个常用的样式都调整好了,包括三种常用的图表类型都封装到一起了,项目组的其他人员只要处理好要显示的数据就行了。

    web.xml设置:

    

       DisplayChart

           org.jfree.chart.servlet.DisplayChart  

     

     

       DisplayChart

       /servlet/DisplayChart

     

     柱状图封装和设置:

     public static JFreeChart getLineChart(String title, String xSubject, String ySubject, CategoryDataset dataset) {

        JFreeChart chart = ChartFactory.createLineChart(title, xSubject, ySubject, dataset, PlotOrientation.VERTICAL, true, true, false);

 

      LineRenderer3D renderer = new LineRenderer3D();

       renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());

       renderer.setItemLabelsVisible(true);

      renderer.setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER));

      CategoryPlot plot = chart.getCategoryPlot();

      CategoryAxis domainAxis = plot.getDomainAxis();   //domainAxis.setVerticalCategoryLabels(false);

       plot.setDomainAxis(domainAxis);

      ValueAxis rangeAxis = plot.getRangeAxis();   //设置最高的一个 Item 与图片顶端的距离

       rangeAxis.setUpperMargin(0.15);   //设置最低的一个 Item 与图片底端的距离

       rangeAxis.setLowerMargin(0.15);

       plot.setRangeAxis(rangeAxis);

      plot.setRenderer(renderer);   //设置透明度

       plot.setForegroundAlpha(0.4f);   //设置背景透明度

       plot.setBackgroundAlpha(0.8f);      //设置背景颜色

       chart.setBackgroundPaint(new Color(240,247,246));

      chart.setBackgroundImageAlpha(0.3f);

      return chart;

     }

 

    调用代码:

     public JFreeChart getSingleChart(String chartType)  {

       //构造数据

       double[][] data = new double[1][7];

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

       {    data[0][i] = Math.round(Math.random()*1000);   }

      //根据类型显示不同类型图表

       String[] rowKeys = new String[]{"Rule001"};

       String[] columnKeys = new String[]{"20日","21日","22日","23日","24日","25日","26日"};

       CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);

      if(chartType.equals("pole"))

       return com.util.MyChartFactory.getBarChart("校验规则统计", "日期", "案例(个)", dataset);

      else if(chartType.equals("line"))

       return com.util.MyChartFactory.getLineChart("校验规则统计", "日期", "案例(个)", dataset);

       else //if(chartType.equals("area"))

        return com.util.MyChartFactory.getAreaChart("校验规则统计", "日期", "案例(个)", dataset);

      }

 

[1]  

【责编:landy】

--------------------next---------------------

阅读(109) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~