柱状图
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();
}
}