jfreechart生成柱状图与饼状图(入门)

jfreechart生成柱状图与饼状图(入门)贴两段代码。
/**
	 * 生成柱状图
	 */
	public String genChannelNumBarChart() {
		try {
			@SuppressWarnings("unchecked")
			List<Object[]> lst = channelService.getArticleNumByChannel();

			int lstSize = lst.size();

			double[][] data = new double[lstSize][1];
			String[] rowKeys = new String[lstSize];
			String[] columnKeys = new String[]{""};
			int i = 0;
			for (Object[] obj : lst) {
				log.debug(obj[0] + "," + obj[1]);
		
				data[i] = new double[] { Double.parseDouble(String
						.valueOf(obj[1])) };
				
				rowKeys[i] = String.valueOf(obj[0]);
				i++;
			}

			CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
					rowKeys, columnKeys, data);
			JFreeChart chart = ChartFactory.createBarChart3D("栏目文章统计图", "栏目",
					"文章数", dataset, PlotOrientation.VERTICAL, true, false,
					false);

			// 通用程序
			TextTitle textTitle = chart.getTitle();
			textTitle.setFont(new Font("黑体", Font.BOLD, 15));
			CategoryPlot plot = chart.getCategoryPlot();
			CategoryAxis domainAxis = plot.getDomainAxis();
			domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));
			domainAxis.setTickLabelFont(new Font("黑体", Font.BOLD, 15));
			ValueAxis valueAxis = plot.getRangeAxis();
			valueAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));
			chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));

			String filename = ServletUtilities.saveChartAsPNG(chart, 600, 400,
					null, this.getSession());
			String graphURL = this.getRequest().getContextPath()
					+ "/DisplayChart?filename=" + filename;

			log.debug("graphURL:" + graphURL);
			
			this.setAttribute("graphURL", graphURL);
			this.setAttribute("filename", filename);

			return "channelNumBarChart";
			
		} catch (Exception e) {
			e.printStackTrace();
		}

		return "channelNumBarChart";
	}
	
	/**
	 * 生成饼状图
	 * @return
	 */
	public String genChannelNumPieChart() {
		try{
			@SuppressWarnings("unchecked")
			List<Object[]> lst = channelService.getArticleNumByChannel();
			//设置数据集 
			DefaultPieDataset dataset = new DefaultPieDataset();
			
			int i = 0;
			for (Object[] obj : lst) {
				log.debug(obj[0] + "," + obj[1]);
				dataset.setValue(String.valueOf(obj[0]),
						Double.parseDouble(String.valueOf(obj[1])));
				i++;
			}
			//通过工厂类生成JFreeChart对象 
			JFreeChart chart = ChartFactory.createPieChart3D("栏目文章发布分布图",
					dataset, true, false, false);
			
			TextTitle textTitle = chart.getTitle();
			textTitle.setFont(new Font("黑体",Font.BOLD,15));
			
			PiePlot pieplot = (PiePlot) chart.getPlot();
			pieplot.setLabelFont(new Font("宋体", 0, 12));
			
			//没有数据的时候显示的内容 
			pieplot.setNoDataMessage("无数据显示");
			pieplot.setCircular(false);
			pieplot.setLabelGap(0.02D);
			
			chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,15));
			//pieplot.getLegendItems().
			//XYPlot  xyPlot=(XYPlot)chart.getPlot();
			//xyPlot.getRangeAxis().setLabelFont(new Font("黑体",Font.BOLD,15));
			
			String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,
					null, this.getSession());
			String graphURL = this.getRequest().getContextPath()
					+ "/DisplayChart?filename=" + filename;
			
			this.setAttribute("graphURL", graphURL);
			this.setAttribute("filename", filename);
			
			return "channelNumPieChart";
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
		
		
		return "channelNumPieChart";
	}


 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值