Jfreechart-Jfreechart的使用(图表绘制)[柱状图]

柱状图
package cn.itcast.chart;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis3D;
import org.jfree.chart.axis.NumberAxis3D;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class BarDemo2 {
	public static void main(String[] args) {
		
		String title="用户统计报表(所属单位)";//第一个参数:主标题
		String categoryAxisLabel="所属单位名称"; //第二个参数:x轴的标签
		String valueAxisLabel="数量";//第三个参数:y轴显示的标签
		PlotOrientation orientation=PlotOrientation.VERTICAL;//第五个参数:图形的显示形式(水平、垂直)
		boolean legend=true;//第六个参数:是否显示子标题
		boolean tooltips=true;//第七个参数:是否生成提示的标签
		boolean urls=true;//第八个参数:是否生成url链接
		
		//第四个参数图表显示的数据集合
		DefaultCategoryDataset dataset=new DefaultCategoryDataset();
		dataset.addValue(13, "中国", "北京");
		dataset.addValue(6, "中国", "深圳");
		dataset.addValue(2, "中国", "上海");
		
		dataset.addValue(8, "美国", "纽约");
		dataset.addValue(10, "美国", "旧金山");
		dataset.addValue(7, "美国", "华盛顿");
		
		JFreeChart jFreeChart=ChartFactory.createBarChart3D(title, categoryAxisLabel, valueAxisLabel, dataset, orientation, legend, tooltips, urls);
	//===========================================================================================
		//处理图形上的乱码
		Font font1=new Font("宋体",Font.BOLD,18);
		Font font2=new Font("宋体",Font.BOLD,15);
		jFreeChart.getTitle().setFont(font1);//处理主标题乱码
		jFreeChart.getLegend().setItemFont(font1);;//处理子标题乱码
			//获取图表区域对象
		CategoryPlot categoryPlot=(CategoryPlot) jFreeChart.getPlot();
				//获取X轴对象
		CategoryAxis3D  categoryAxis3D=(CategoryAxis3D) categoryPlot.getDomainAxis();
				//获取Y轴对象
		NumberAxis3D numberAxis3D=(NumberAxis3D) categoryPlot.getRangeAxis();
		
		
		categoryAxis3D.setTickLabelFont(font2);//处理X轴上的乱码
		categoryAxis3D.setLabelFont(font2);//处理X轴外的乱码
		numberAxis3D.setTickLabelFont(font2);//处理Y轴上的乱码
		numberAxis3D.setLabelFont(font2);//处理Y轴外的乱码
		
		//处理Y轴上显示的刻度,以1作为一格
		numberAxis3D.setAutoTickUnitSelection(false);
			//设置递增单位
		NumberTickUnit unit=new NumberTickUnit(1);
		numberAxis3D.setTickUnit(unit);
	//=====================================================================================================
		//获取绘图区域对象
		BarRenderer3D barRenderer3D=(BarRenderer3D) categoryPlot.getRenderer();
			//设置柱形图的宽度
		barRenderer3D.setMaximumBarWidth(0.07);
			//在图形上显示数字
		StandardCategoryItemLabelGenerator generator=new StandardCategoryItemLabelGenerator();
		barRenderer3D.setBaseItemLabelGenerator(generator);
		barRenderer3D.setBaseItemLabelsVisible(true);
		barRenderer3D.setBaseItemLabelFont(font2);
		
		
	//======================================================================================================	
		//使用ChartFrame对象显示图像
		ChartFrame frame=new ChartFrame("xyz",jFreeChart);
		frame.setVisible(true);
		frame.pack();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值