zoukankan      html  css  js  c++  java
  • JFreeChart生成3D柱状图

    1、源码如下:

    /**
     * @Title:ColumnChart.java
     * @Package:com.you.jfreechart
     * @Description:柱形图
     * @author:Youhaidong(游海东)
     * @date:2013-7-23 下午10:50:00
     * @version V1.0
     */
    package com.you.jfreechart;
    
    import java.awt.Color;
    import java.awt.Font;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartFrame;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.CategoryAxis;
    import org.jfree.chart.axis.CategoryLabelPositions;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.title.LegendTitle;
    import org.jfree.data.category.DefaultCategoryDataset;
    
    /**
     * 类功能说明
     * 类修改者 修改日期
     * 修改说明
     * <p>Title:ColumnChart.java</p>
     * <p>Description:游海东个人开发</p>
     * <p>Copyright:Copyright(c)2013</p>
     * @author:游海东
     * @date:2013-7-23 下午10:50:00
     * @version V1.0
     */
    public class ColumnChart {
    
    	public ColumnChart(String string, JFreeChart chart) {
    		
    	}
    
    	/**
    	 * @Title:main
    	 * @Description:柱形图
    	 * @param:@param args
    	 * @return: void
    	 * @throws
    	 */
    	public static void main(String[] args) {
    		
    		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    		dataset.addValue(630, "湖北", "香蕉");
    		dataset.addValue(520, "湖南", "苹果");
    		dataset.addValue(320, "河北", "橘子");
    		dataset.addValue(850, "河南", "梨子");
    		dataset.addValue(240, "广东", "杏子");
    		dataset.addValue(340, "广西", "葡萄");
    		dataset.addValue(410, "浙江", "柠檬");
    		dataset.addValue(600, "辽宁", "西瓜");
    		dataset.addValue(780, "黑龙江", "荔枝");
    		
    		JFreeChart chart = ChartFactory.createBarChart3D("水果销售分布图","水果", "销量量", dataset, 
    				           PlotOrientation.VERTICAL, true, true, false);
    		chart.setBackgroundPaint(Color.yellow);
    		CategoryPlot categoryPlot = chart.getCategoryPlot();
    		categoryPlot.setBackgroundPaint(Color.LIGHT_GRAY);
    		categoryPlot.setDomainGridlinePaint(Color.white);
    		categoryPlot.setDomainGridlinesVisible(true);
    		categoryPlot.setRangeGridlinePaint(Color.white);
    		CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
    		categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
    		categoryPlot.getDomainAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
    		categoryPlot.getRangeAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
    		//解决标题乱码
    		chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));
    		
    		ChartFrame chartFrame = new ChartFrame("水果数量分布", chart);
    		chartFrame.pack();
    		chartFrame.setVisible(true);
    		
    		//解决Legend乱码问题
    		LegendTitle legendTitle = chart.getLegend(0);
    		legendTitle.setItemFont(new Font("宋体",Font.BOLD,12));
            
    	}
    
    }
    

    2、生成结果如下,出现乱码:


    3、解决中文乱码的源码

    /**
     * @Title:ColumnChart.java
     * @Package:com.you.jfreechart
     * @Description:柱形图
     * @author:Youhaidong(游海东)
     * @date:2013-7-23 下午10:50:00
     * @version V1.0
     */
    package com.you.jfreechart;
    
    import java.awt.Color;
    import java.awt.Font;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartFrame;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.CategoryAxis;
    import org.jfree.chart.axis.CategoryLabelPositions;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.title.LegendTitle;
    import org.jfree.data.category.DefaultCategoryDataset;
    
    /**
     * 类功能说明
     * 类修改者 修改日期
     * 修改说明
     * <p>Title:ColumnChart.java</p>
     * <p>Description:游海东个人开发</p>
     * <p>Copyright:Copyright(c)2013</p>
     * @author:游海东
     * @date:2013-7-23 下午10:50:00
     * @version V1.0
     */
    public class ColumnChart {
    
    	public ColumnChart(String string, JFreeChart chart) {
    		
    	}
    
    	/**
    	 * @Title:main
    	 * @Description:柱形图
    	 * @param:@param args
    	 * @return: void
    	 * @throws
    	 */
    	public static void main(String[] args) {
    		
    		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    		dataset.addValue(630, "湖北", "香蕉");
    		dataset.addValue(520, "湖南", "苹果");
    		dataset.addValue(320, "河北", "橘子");
    		dataset.addValue(850, "河南", "梨子");
    		dataset.addValue(240, "广东", "杏子");
    		dataset.addValue(340, "广西", "葡萄");
    		dataset.addValue(410, "浙江", "柠檬");
    		dataset.addValue(600, "辽宁", "西瓜");
    		dataset.addValue(780, "黑龙江", "荔枝");
    		
    		JFreeChart chart = ChartFactory.createBarChart3D("水果销售分布图","水果", "销量量", dataset, 
    				           PlotOrientation.VERTICAL, true, true, false);
    		chart.setBackgroundPaint(Color.yellow);
    		CategoryPlot categoryPlot = chart.getCategoryPlot();
    		categoryPlot.setBackgroundPaint(Color.LIGHT_GRAY);
    		categoryPlot.setDomainGridlinePaint(Color.white);
    		categoryPlot.setDomainGridlinesVisible(true);
    		categoryPlot.setRangeGridlinePaint(Color.white);
    		CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
    		categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
    		categoryAxis.setLabelFont(new Font("宋体",Font.BOLD,12));
    		categoryAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));
    		categoryPlot.getRangeAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
    		//解决标题乱码
    		chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));
    		
    		ChartFrame chartFrame = new ChartFrame("水果数量分布", chart);
    		chartFrame.pack();
    		chartFrame.setVisible(true);
    		
    		//解决Legend乱码问题
    		LegendTitle legendTitle = chart.getLegend(0);
    		legendTitle.setItemFont(new Font("宋体",Font.BOLD,12));
            
    	}
    
    }
    

    4、显示结果如下图:


  • 相关阅读:
    学习记录---KMP算法-部分匹配表理解
    关于GameObject无法禁用问题
    out用法
    关于Dictionary.TryGetValue的个人理解记录
    Transform.parent和Transform.root的区别
    Queue默认容量
    关于Camera Culling Mask
    MSVCP110.DLL没有被指定在WINDOWS上运行
    typeof instanceof 之间的区别总结
    Promise 使用心得
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13315763.html
Copyright © 2011-2022 走看看