`
quzhan87com
  • 浏览: 55353 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

jfreeChar线状图

阅读更多
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

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.CategoryAxis;
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.DefaultCategoryDataset;

public class CreateLineChart {

	private static JFreeChart chart;
	private static DefaultCategoryDataset dataset;
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//步骤1:创建XYDataset对象(准备数据)      
		createDataset();
    	//步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置      
    	createChart();      
    	//步骤3:将JFreeChart对象输出到文件,Servlet输出流等      
    	saveAsFile(chart, "D:\\lineXY.png", 600, 400);      
      
        //显示  
        ChartFrame frame = new ChartFrame("BarChart Tesing!", chart);
        frame.pack();
        frame.setVisible(true);
	}
	/**
	 * Create DataSet
	 */
	private static void createDataset() {
		dataset = new DefaultCategoryDataset();
		double[][] data = new double[][] {{24, 32, 50, 54, 65},{7, 9, 14, 21, 80}};
		String[] rowKeys = {"合格","不合格"};
		String[] columnKeys = {"第一种","第二种","第三种","第四种","第五种"};
		for (int i = 0; i < rowKeys.length; i++) {
			for (int j = 0; j < columnKeys.length; j++) {
				dataset.setValue(data[i][j], rowKeys[i], columnKeys[j]);
			}
		}
	}
	
	public static void createChart() {
		chart = ChartFactory.createLineChart("线状图", // 图表标题
				"X轴",	// 目录轴的显示标签
				"Y轴",	// 数值轴的显示标签
				dataset,	// 数据集 
				PlotOrientation.VERTICAL, // 图表方向:水平、垂直   
				true, 	// 是否显示图例(对于简单的柱状图必须是false)
				true, 	// 是否生成工具 
				false);	// 是否生成URL链接 
		CategoryPlot plot = chart.getCategoryPlot();
		plot.setBackgroundPaint(new Color(238, 244, 255));//设置图表的颜色		
		plot.setDomainGridlinePaint(Color.lightGray);//设置垂直网格线的颜色
		plot.setRangeGridlinePaint(Color.lightGray);//设置水平网格线的颜色
		plot.setDomainGridlinesVisible(true);    //设置垂直网格线是否显示
		plot.setRangeGridlinesVisible(true);     //设置水平网格线是否显示
		chart.setBackgroundPaint(Color.white);
		setChartFont();
	}
	/**
	 * Save chart to File    
	 * @param chart
	 * @param outputPath
	 * @param weight
	 * @param height
	 */
    public static void saveAsFile(JFreeChart chart, String outputPath,      
    								int weight, int height) {      
    	
    	FileOutputStream out = null;      
    	try {      
    		File outFile = new File(outputPath);      
    		if (!outFile.getParentFile().exists()) {      
    			outFile.getParentFile().mkdirs();      
    		}      
    		out = new FileOutputStream(outputPath);      
    		//保存为PNG      
    		ChartUtilities.writeChartAsPNG(out, chart, weight, height);      
    		// 保存为JPEG      
    		// ChartUtilities.writeChartAsJPEG(out, chart, weight, height);      
    		out.flush();      
    	} catch (FileNotFoundException e) {      
    		e.printStackTrace();      
    	} catch (IOException e) {      
    		e.printStackTrace();      
    	} finally {      
    		if (out != null) {      
    			try {      
    				out.close();      
    			} catch (IOException e) {      
    			// do nothing      
    			}      
    		}      
    	}      
    }  
	 /**
	 * 图标乱码解决
	 */
	private static void setChartFont() {	
		Font title = new Font("楷体", Font.PLAIN, 15);
		Font f = new Font("楷体", Font.PLAIN, 12);
		//title(标题),
		TextTitle textTitle = chart.getTitle();   
		textTitle.setFont(title); 
			CategoryPlot plot = chart.getCategoryPlot();   
			CategoryAxis domainAxis = plot.getDomainAxis();     
			//设置X轴坐标上的文字     
			domainAxis.setTickLabelFont(f); 
			//设置X轴的标题文字     
			domainAxis.setLabelFont(f); 
			
			ValueAxis numberaxis = plot.getRangeAxis(); 
			//设置Y轴坐标上的文字     
			numberaxis.setTickLabelFont(f);	
			//设置Y轴的标题文字     
			numberaxis.setLabelFont(f);  
		chart.getLegend().setItemFont(f);
	}
}


运行得到的图片:


  • 大小: 13.7 KB
分享到:
评论

相关推荐

    JFreeChar 动态曲线图

    JFreeChar 动态曲线图,定时刷新,带节点事件

    jfreechar 实现生成柱状图,饼图,曲线,

    - "jfreecharss"和"jfreechar"可能是包含JFreeChart示例代码或资源的文件。分析这些文件可以帮助理解如何在实际项目中使用JFreeChart。 综上所述,JFreeChart是一个强大的Java图表库,能够方便地生成各种图表,...

    jfreeChar 折线图+柱形图(混合图) +最新Jar包及例子

    JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...

    JFreeChar 柱图实现

    ### JFreeChart 柱图实现详解 #### 引言 在数据分析与展示领域,柱状图(Bar Chart)是一种非常常见的数据可视化工具,它能够直观地比较不同类别的数值大小,尤其适用于显示离散数据集。JFreeChart作为Java平台上...

    JFreeChar制作饼图和柱状图

    // 或者保存为图片 File file = new File("pie_chart.png"); ChartUtilities.saveChartAsPNG(file, chart, 500, 300); ``` **制作柱状图的步骤:** 1. **导入必要的库:** 和饼图类似,我们需要导入相同的...

    JfreeChar学习资料 JfreeChar学习资料

    JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图等,使得开发者能够方便地在应用程序中生成高质量的可视化数据。本学习资料将深入探讨JFreeChart的...

    JFreeChar 动态横向柱状图

    JFreeChar 动态横向柱状图,带纵向滚动条,可根据数据自动计算滚动条长度,可自定义系统柱子颜色,定时刷新

    jfreechar各种图

    JFreeChart是一款强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图、甘特图等。这个库在IT行业中被广泛使用,特别是在需要进行数据可视化的应用程序中。它允许开发人员通过简单的API调用来...

    JFreechar简单报表例子

    它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、面积图、甘特图等,广泛应用于数据分析、报表制作以及各种Java应用程序中。JFreeChart通过其强大的API,使得开发者能够轻松地在程序中集成图表功能,动态...

    jfreechar最新jar包

    jfreechar最新jar包 JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: pie charts (2D and 3D):饼图(平面和立体) bar charts (regular and stacked, with ...

    jfreechar教程

    JFreeChart 支持多种图表类型,如饼图、柱状图、线图、散点图、甘特图等,提供了丰富的定制选项,可以满足开发人员在可视化方面的各种需求。 在Java开发中,JFreeChart插件是一个非常实用的工具,它可以帮助开发者...

    JFreeChar柱状图实例

    **JFreeChart 柱状图实例详解** 在Java编程中,JFreeChart是一个强大的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,使得开发者能够轻松地在应用程序中创建高质量的可视化数据。本实例...

    JFreeChar实现曲线图:lib+Demo

    JFreeChart是一款强大的开源Java图表库,它提供了丰富的图表类型,包括柱状图、饼图、折线图、曲线图、散点图等,使得开发者能够轻松地在Java应用中插入美观且功能齐全的图表。在本篇内容中,我们将深入探讨如何利用...

    jfreechar 雷达图 带刻度

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图表类型,包括柱状图、饼图、线图、散点图以及我们关注的雷达图。雷达图,也称为蜘蛛图或星形图,是一种多变量数据可视化工具,常用于比较多个类别的数据...

    JfreeChar教程与实例

    JFreeChart是一款强大的Java库,用于创建各种图表,如饼图、柱状图、线图、散点图、甘特图等。它在IT行业中广泛应用于数据可视化,尤其是在报表生成和数据分析领域。本教程将带你深入理解JFreeChart的使用,并通过...

    jfreechar饼图简单示例

    `jfreechart`是一款功能强大且开源的Java图表库,它支持多种类型的图表绘制,包括饼图、柱状图、折线图等。本篇文章将通过一个简单的示例来介绍如何使用`jfreechart`来绘制饼图。 #### 二、环境准备 在开始之前,...

    jfreechar完整的例子

    这个压缩包“JfreeChar完整的例子”包含了使用JFreeChart创建图表的详细示例,既有在Web环境下运行的例子,也有通过main方法直接执行的Java应用。 首先,我们来了解一下JFreeChart的基本使用。在Java程序中,你可以...

    jfreechar统计图操作技巧

    JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、饼图、线形图等,使得在项目开发中能够轻松地将数据库中的数据以直观、生动的方式展示出来。本文将深入探讨JFreeChart的使用技巧,...

    jfreechar画图源代码

    本资料提供的"jfreechar画图源代码"包含了作者自己编写的能运行并显示结果的示例代码,这对于学习和理解JFreeChart的使用非常有帮助。 JFreeChart库提供了丰富的图表类型,包括但不限于: 1. **饼状图(Pie Chart...

Global site tag (gtag.js) - Google Analytics