JFreeChart画3D二维图

本文介绍如何使用Java和JFreeChart库创建一个3D柱状图来展示不同城市中各种水果的产量,并详细说明了设置图表样式及保存为图片的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public String barChart() throws Exception{
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(200, "上海", "苹果");
		dataset.addValue(150, "广州", "苹果");
		dataset.addValue(260, "北京", "梨子");
		dataset.addValue(210, "上海", "梨子");
		dataset.addValue(120, "广州", "梨子");
		dataset.addValue(370, "北京", "葡萄");
		dataset.addValue(310, "上海", "葡萄");
		dataset.addValue(340, "广州", "葡萄");
		dataset.addValue(410, "北京", "香蕉");
		dataset.addValue(480, "上海", "香蕉");
		dataset.addValue(400, "广州", "香蕉");
		dataset.addValue(530, "北京", "荔枝");
		dataset.addValue(500, "上海", "荔枝");
		dataset.addValue(580, "广州", "荔枝");
	    
	    JFreeChart jfree = 
	    	ChartFactory.createBarChart3D("水果产量图", "水果", "产量", dataset, 
	    			PlotOrientation.VERTICAL, true, true, false);
	    
	    CategoryPlot categoryplot = (CategoryPlot) jfree.getPlot();
		NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();  
		CategoryAxis domainAxis = categoryplot.getDomainAxis();  
		TextTitle textTitle = jfree.getTitle();
		textTitle.setFont(new Font("黑体", Font.PLAIN, 20));   
		domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14));  
		domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 16));  
		numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14));  
		numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 16));  
		jfree.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 16));
	    
	    //path代表当前服务器上下文路径
		String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/");
		
		if(imgName==null || "".equals(imgName)){
			imgName = "default";
		}
		
		//保存图片
		ChartUtilities.saveChartAsJPEG(new File(path + "img/" + imgName + "Bar.jpg"), jfree, 535, 400);
	    
		return "success";
	}

 效果图在附件里

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值