`
Eaduns
  • 浏览: 64783 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JFreeChart简单例子加乱码解决(部分)

阅读更多

首先需要导入两个包:

jcommon-1.0.17.jar

jfreechart-1.0.14.jar

如果你手头没有需要到JFreeChart的网站上去下载地址如下:http://sourceforge.net/projects/jfreechart/files/

下载后可以找到以上两个包,有个包gnujaxp.jar加入后启动tomcat会报错,不知何解,下面是代码:

 

import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;


public class Test {
	
	public static void main(String[] args) {
			
		CategoryDataset dataset = getDataSet2();
		DefaultPieDataset data = getDataSet();
		
			JFreeChart	chart1 = ChartFactory.createBarChart3D
				("城市水果产量图", //图表标题
				 "水果", //目录轴的显示标签
				 "产量", //数值周的显示标签
				 dataset, 
				 PlotOrientation.VERTICAL,//图标方向:水平、垂直 
				 true,//是否显示图例(对于简单的柱状图必须是false) 
				 false,//是否生成工具
				 false);//是否生成URL
				
			JFreeChart chart2 = ChartFactory.createPieChart3D("水果产量", data, true, false, false);
			
			configFont(chart1);
		
			FileOutputStream fos_jpg = null;
			try {
				fos_jpg = new FileOutputStream("D:\\fruit.jpg");//生成的路径,请在这里查看图片
				ChartUtilities.writeChartAsPNG(fos_jpg, chart1, 400, 300, null);//chart1,chart2
			} catch (IOException e) {
				e.printStackTrace();
			}finally{
				
				try {
					fos_jpg.close();
				} catch (IOException e2) {
					e2.printStackTrace();
				}
				
			}
			

		
	}

	
    private static void configFont(JFreeChart chart) {		
        // 配置字		
        Font xfont = new Font("宋体", Font.PLAIN, 12);// X轴		
        Font yfont = new Font("宋体", Font.PLAIN, 12);// Y轴			
        Font kfont = new Font("宋体", Font.PLAIN, 12);// 底部		
        Font titleFont = new Font("隶书", Font.BOLD, 25); // 图片标题		
        CategoryPlot plot = chart.getCategoryPlot();// 图形的绘制结构对象			
        // 图片标题		
        chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));		
        // 底部			
        chart.getLegend().setItemFont(kfont);		
        // X 轴		
        CategoryAxis domainAxis = plot.getDomainAxis();			
        domainAxis.setLabelFont(xfont);// 轴标题			
        domainAxis.setTickLabelFont(xfont);// 轴数值			
        domainAxis.setTickLabelPaint(Color.BLUE); // 字体颜色			
        domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 横轴上的label斜显示	
        // Y 轴		
        ValueAxis rangeAxis = plot.getRangeAxis();			
        rangeAxis.setLabelFont(yfont);			
        rangeAxis.setLabelPaint(Color.BLUE); // 字体颜色			
        rangeAxis.setTickLabelFont(yfont);		
    }
	
	
	private static DefaultPieDataset getDataSet(){
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("苹果",100);
		dataset.setValue("梨子",200);
		dataset.setValue("香蕉",300);
		dataset.setValue("荔枝",400);
		dataset.setValue("葡萄",500);
		
		return dataset;
		
	}
	
	private static CategoryDataset getDataSet2(){
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(100, "上海", "苹果");
		dataset.addValue(100, "广州", "苹果");
		dataset.addValue(200, "北京", "梨子");
		dataset.addValue(200, "上海", "梨子");
		dataset.addValue(200, "广州", "梨子");
		dataset.addValue(300, "北京", "葡萄");
		dataset.addValue(300, "上海", "葡萄");
		dataset.addValue(300, "广州", "葡萄");
		dataset.addValue(400, "北京", "香蕉");
		dataset.addValue(400, "上海", "香蕉");
		dataset.addValue(400, "广州", "香蕉");
		dataset.addValue(500, "北京", "荔枝");
		dataset.addValue(500, "上海", "荔枝");
		dataset.addValue(500, "广州", "荔枝");
		
		return dataset;
		
	}
		
}
 
分享到:
评论

相关推荐

    jfreeChart 例子,并设置语言,防止乱码

    在本文中,我们将深入探讨如何使用JFreeChart来创建饼状图,并重点讲解如何设置语言以及解决可能出现的乱码问题。 首先,JFreeChart依赖于JCommon库,这是一个提供基础图形和数据处理功能的库。在我们的示例中,...

    jfreechart图表的完整工程例子(含中文乱码处理和百分比)

    本工程例子展示了如何利用JFreeChart创建包含中文内容的图表,并解决中文乱码问题以及饼图中显示百分比的问题。 ### 一、中文乱码处理 在Java程序中,处理中文字符时常常会遇到乱码问题。这通常是由于字符编码设置...

    Linux下Jfreechart会出现方框框

    在我们的例子中,`zysong.ttf`是一个TrueType字体文件,可能包含解决方框问题所需的字符集。 当JFreeChart在绘制图表时,它会尝试找到合适的字体来呈现图例、轴标签等文本。如果系统中没有包含JFreeChart需要的字体...

    JFreeChart绘制饼图例子

    该程序为一个绘制饼图的简单例子,并解决了再饼图中汉字显示出现乱码问题。

    JFreechart存储为PDF不能显示中文文字的解决办法

    《JFreechart生成PDF中文显示问题的解决方案》 在使用JFreechart库生成PDF文档时,经常遇到一个棘手的问题,即中文文字无法正常显示。这主要是由于JFreechart默认的字体映射策略不支持中文字符集导致的。本文将详细...

    JFreeChart 各种图形的 web工程

    这个特定的例子是将JFreeChart应用于Web工程中,解决了在Web环境下可能出现的乱码问题,确保了图表的清晰易读。 **1. 折线图** 折线图是一种常用的数据可视化方式,常用于显示数据随时间变化的趋势。在JFreeChart中...

Global site tag (gtag.js) - Google Analytics