jfreeChart圆柱状图详细设置

 

圆形柱状图,直接看代码(有详细注释)

BarChart3DCase.java

package com.graph.myself;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.text.DecimalFormat;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.StandardGradientPaintTransformer;
import org.jfree.ui.TextAnchor;
import com.graph.myself.CylinderRenderer;

/**
 * 3D直方图例子
 * @author zengfantian 
 *
 */
public class BarChart3DCase {
	
	/**
	 * 获取数据集
	 * 
	 * @return CategoryDataset
	 */
	private  CategoryDataset getDataSet() {
		
		CategoryDataset dataset = new DefaultCategoryDataset();
		// 同一种类型的数据放在一个数组元素中
		final double[][] data = new double[][] { 
				{ 967, 1164, 1463, 1793, 1933 },
				{ 2164, 3063, 3955, 4031, 6749 },
				{ 1028, 1357, 1203, 1392, 2316 } };
		// 横向说明
		final String[] rowKeys = { "发明", "实用新型", "外观设计" };
		// 横向坐标值
		final String[] columnKeys = { "2006年", "2007年", "2008年", "2009年", "2010年" };
		
		//用DatasetUtilities来构建所需要的数据对象
		dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
		return dataset;
	}
	
	/**
	 * 创建图表JfreeChart对象
	 * @param dataset 数据集
	 * @param title 图表标题
	 * @return 图表JFreeChart
	 */
	private  JFreeChart createChart(CategoryDataset dataset,String title) {
		
		//用ChartFactory来构建所需的Chart对象
		JFreeChart chart = ChartFactory.createStackedBarChart3D(
				title,  //图表标题
				"",//横向标签 
				"",//纵向标签 
				dataset, //数据集
				PlotOrientation.VERTICAL, // 图表方向:水平、垂直, 
				true,//是否显示图例(对于简单的柱状图必须是false) 
				true, //
				false //是否生成URL链接
				);
		
		chart = this.setChart(chart);
	    
		return chart;
	}
	
	/**
	 * 对X轴的设置
	 * 
	 * @param domainAxis
	 */
	private  void setXDomainAxis(CategoryAxis domainAxis) {

		Font labelFont = new Font("宋体", Font.CENTER_BASELINE, 12);
		domainAxis.setLowerMargin(0.1);// 设置距离图片左端距离此时为10%
		domainAxis.setUpperMargin(0.1);// 设置距离图片右端距离此时为百分之10

		domainAxis.setLabelFont(labelFont);// X轴标题
		domainAxis.setTickLabelFont(labelFont);// X轴数值

		domainAxis.setCategoryLabelPositionOffset(10);// 图表横轴与标签的距离(10像素)
		domainAxis.setCategoryMargin(0.2);// 横轴标签之间的距离20%

		// domainAxis.setMaximumCategoryLabelLines(1);
		// domainAxis.setMaximumCategoryLabelWidthRatio(0);

		dom
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值