`
编程足球
  • 浏览: 257770 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

报表 Openchart2

阅读更多
1. 简介
Openchart2 is a full-featured 2D plotting solution for Java applications.

Graph Types
Openchart2 supports a variety of chart types, including:

1. Bar Charts - including Stacked Bar Charts
2. Pie Charts
3. Radar Charts
4. Scatter Plots - including Line Charts, Point Charts, or combinations
5. Dot Plots - for the visualization of (x,y,z) data

The Openchart2 rendering system allows multiple types of plots to be drawn on the same view, enabling unlike graphs to appear together.

Simple Data Passing
Openchart2 allows for a variety of techniques to be used for passing data into the plotting routines.  Simple arrays or full database sources can provide data to the plotting routines.

Dynamic Zooming
All chart types support dynamic zooming.  Sample Swing chart panels are provided in the library with complete mouse-controlled dynamic zoom implemented for ease of use.
上面信息来源于官网http://approximatrix.com/products/openchart2/features

2.例子

1. BarChart
package com.Openchart2;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import com.approximatrix.charting.model.ObjectChartDataModel;
import com.approximatrix.charting.model.ChartDataModel;
import com.approximatrix.charting.swing.ChartPanel;
import com.approximatrix.charting.render.BarChartRenderer;
import com.approximatrix.charting.render.PieChartRenderer;
import com.approximatrix.charting.CoordSystem;

public class BarChart extends JDialog implements ActionListener {
	private static final long serialVersionUID = 1L;

	/** 每个bar对应的label */
	String[] names = {"aaa","bbb","ccc"};
	
	/** 每个bar对应的值 */
	double[] values = {10.0,30.0,60.0};
	
	/** Initializes the dialog and its chart in a ChartPanel dialog */
	@SuppressWarnings("deprecation")
	public BarChart() {
		super();
		
//		对这个dialog进行初始化
		this.setTitle("Bar 的例子");
		this.setSize(500, 400);
		this.setResizable(true);
		
		JPanel contentPane = new JPanel();
		contentPane.setLayout(new BorderLayout());
		this.setContentPane(contentPane);
		
		// 定义当点击x的时候窗口是Hide还是Destroy
		this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		
		/**
		 * 初始化必要的数据 存放在二维数组中
		 * data[0][i]	每个系列的数(就像这次结果的one   two   three   four 四个系列)
		 * data[i][0]	每个系列中具体的值    和 name进行一一对应
		 * 
		 * eg:
		 * 	data[0][0]   data[1][0]   data[2][0]	都是names[0] 的值
		 * 	data[0][1]   data[1][1]   data[2][1]	都是names[1] 的值
		 * 
		 * 
		 * 	data[0][0]   data[0][1]   data[0][2]	都是series_names[0]一组中的数据
		 * 	data[1][0]   data[1][1]   data[1][2]	都是series_names[1]一组中的数据
		 * 
		 * 
		 */
		Double[][] data = new Double[values.length][names.length];
		for(int i=0;i<values.length;i++) {
			for (int j = 0; j < names.length; j++) {
				data[i][j] = new Double(values[i]);
			}
		}
		// We need to pass a title for this series as well
		String[] series_names = {"one","two","three","four"};
		
		// 根据传递的数据 创建ChartDataModel 数据模型
		ChartDataModel model = new ObjectChartDataModel(data, names, series_names); 
		
		// 根据对象模型创建坐标系统
		CoordSystem coord = new CoordSystem(model);
		
		// 创建一个默认的图形面板
		ChartPanel chart_panel = new ChartPanel(model,"Openchart2 图形测试");
		
		// 设置图形面板的坐标
		chart_panel.setCoordSystem(coord);
		
		// 指定要生成的图形BarChartRenderer 还是 PieChartRenderer 等等..
		chart_panel.addChartRenderer(new BarChartRenderer(coord,model), 0);
//		chart_panel.addChartRenderer(new PieChartRenderer(coord,model),0);
		// 定义位置
		contentPane.add(chart_panel,BorderLayout.CENTER);
		
		model.setManualScale(true);
		model.setMinimumValue(new Double(0.0));
		model.setMaximumValue(new Double(100.0));
		
	}
	
	/**
	 * mian 函数
	 * @param args
	 */
	public static void main(String[] args) {
		BarChart temp = new BarChart();
		temp.setVisible(true);
	}

	/**
	 * 事件监听
	 */
	public void actionPerformed(ActionEvent e) {
		
	}
}



结果如图:


2. PieChart
package com.Openchart2;
import javax.swing.JApplet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;

import com.approximatrix.charting.DefaultChart;
import com.approximatrix.charting.CoordSystem;
import com.approximatrix.charting.model.ObjectChartDataModel;
import com.approximatrix.charting.render.PieChartRenderer;

public class PieChart extends JApplet {

	// 定义char的基本数据
	private static final long serialVersionUID = 1L;
	private static final String[] markDate = {"one","Two","Three","Four","Five","Six"};
	private static final int[] amount = {10,20,30, 40,50,60};
	DefaultChart chart = null;
	
	/** Constructor for our pie chart applet
	 * 
	 */
	@SuppressWarnings("deprecation")
	public PieChart() {
		int data[][] = new int[amount.length][1];
		for(int i=0;i<amount.length;i++) {
			data[i][0] = amount[i];
		}
		
//		暂时无作用,仅仅初始化模型时候会用到	x轴坐标值
		String[] column_id = {"column1","column2"};
		
//		创建一个数据模型
//		data - 		the array of values. The first index specifies the datasets, 
//					the last one is the value index.
//		columns - 	the array of x-axis values. The length of the datasets and 
//					the length of the column should be equal and the columns should be ordered.
//		rows - 		the DataSet titles	每个date对应的titles
		ObjectChartDataModel model = new ObjectChartDataModel(data, column_id, markDate);
		
//		model - the ChartDataModel	数据模型
//		title - the title String	标题
		chart = new DefaultChart(model,"饼状图例子");
		
//		根据数据模型创建一个饼状图
//		model - the DataModel that should be rendered
		PieChartRenderer renderer = new PieChartRenderer(model);
		
//		render - the ChartRenderer
//		z - the z-coordinate, the highest coordinate is in front.
		chart.addChartRenderer(renderer, 0);
		
		// A coordinate system is necessary for any chart, regardless of type.  A pie chart,
		// however, really doesn't need to use one.  After creating the default CoordSystem
		// object, turn off all axis drawing since we don't need to see the axes.
		CoordSystem coord = new CoordSystem(model);
		coord.setPaintAxes(true);	// 是否显示x-y轴坐标
		chart.setCoordSystem(coord);
		
		// Our graph is now constructed
	}
	
	/** Override the paint routine to draw the graph
	*/
	public void paint(Graphics g) {
		super.paint(g);
		chart.setBounds(new Rectangle(this.getWidth(), this.getHeight()));
        chart.render((Graphics2D)g);
	} 
}


分享到:
评论

相关推荐

    Open Flash Chart 报表插件相关

    Open Flash Chart是一款强大的开源图表生成插件,常用于创建交互式、美观的图表,尤其适合在Web应用程序中显示数据。这个插件支持多种编程语言,包括ASP.NET,使得开发者能够轻松地将动态数据转化为视觉上吸引人的...

    Open Flash Chart2 相关资料

    1.Open Flash Chart2官网最后版本; 2.Open Flash Chart2非官方后续开发最新版本; 3.Open Flash Chart2 Java中所需的扩展Jofc2最新版本; 4.Open Flash Chart2的基础入门教程。 (压缩包中的jofc版本可能有点旧,...

    open-flash-chart2系列教程

    《Open Flash Chart 2 系列教程:深入解析与应用》 Open Flash Chart 2(简称OFC2)是一款强大的开源图表生成库,专为创建交互式、动态的Flash图表而设计。它允许开发者通过JSON格式的数据来构建各种类型的图表,如...

    Open Flash Chart的应用(java),就是很炫的报表了

    这里面有两个java代码工程和 Open Flash Chart API。工程都是调试过的直接导入可用,代码都有详细的注释,如果你真是想用到报表之类的东西,肯定很不错了。 工程所需的jar 包 js文件都有,基本上很全。 第一步:...

    open flash chart库

    2. **引入库**:在PHP代码中引入Open Flash Chart的库文件,通常是`ofc_loader.php`。 3. **构建数据**:根据实际需求,创建PHP数组或对象,存储图表的数据和配置信息。 4. **生成图表**:调用Open Flash Chart的...

    open-flash-chart2

    DEMO:VS2010 ASP.NET MVC3.0 包含了多种图形报表:竖柱、横柱、曲线、网状、块状、混合(竖柱+曲线) ...对open-flash-chart源码做了一些优化:主要针对横柱,可以对每条柱设置颜色和显示值,鼠标悬停优化等...

    open flash chart 2.0

    OpenFlashChart是一个开源的报表制作组件,该组件能够自动生成一个好看的、动态的flash报表; 该组件使用flash展示报表能够很好的做到与浏览器进行集成,目前浏览器基本都能很好的支持flash; 该组件还支持一些简单...

    Open Flash Chart例子、中文版PDF说明文档、参数表

    Open Flash Chart(简称OFC),是一个开源的flash报表组件。我们不仅可以免费使用,而且还可以修改源码,来达到我们想要的效果。客户端在得到数据以后,在Flash Player中渲染出报表图。  附带PDF说明文档,是中文版...

    百灵报表开发教程

    3. 创建数据集:用户可以根据需要创建数据集,例如-table、chart、map等,用于报表的呈现。 4. 设计报表的布局和样式:用户可以根据需要设计报表的布局和样式,例如添加表格、图表、文本框等控件。 报表的发布 ...

    Birt报表操作手册

    Birt报表操作手册提供了多种_script编程接口,例如open、fetch、beforeGeneration等。 报表布局 在Birt报表操作手册中,报表布局是指报表的页面布局和设计。报表布局可以通过选择报表模板、设置报表属性、添加报表...

    open flash chart 1.9.7

    Open Flash Chart 1.9.7 是一款高效且免费的网络报表设计工具,它以其强大的功能和易用性在开发者社区中赢得了广泛赞誉。这款软件的核心优势在于其快捷的性能和丰富的图表展示效果,使得即便是非专业程序员也能轻松...

    open-flash-chart2使用总结

    "open-flash-chart2"是一个强大的开源Flash图表库,它能够帮助开发者创建出各种各样的动态报表,以直观、生动的方式展示复杂的数据。其效果令人印象深刻,因此在IT行业中得到了广泛应用。 open-flash-chart2的核心...

    open flash chart 制图Demo及文档

    2. 图表库:包含Open Flash Chart的SWF文件,这是在Web页面上显示图表所必需的。 3. HTML模板:这些模板文件演示了如何在HTML页面中嵌入Flash图表,并设置其属性。 4. 配置文件:可能包含XML或JSON样例,用于理解...

    open-flash-chart-1[1].9.7.zip_flash chart tr_open flash chart

    总的来说,Open Flash Chart为Web开发者提供了一种高效、直观的方式来创建复杂的图表,无论是在报表系统、数据分析应用还是其他需要数据可视化的场景,都是一个值得信赖的工具。对于熟悉各种编程语言的开发者来说,...

    Web Chart 极品web报表控件收集Web+Chart

    Open Flash Chart - Open Flash Chart 是一个 Flash 图表组件,很容易安装,提供以下语言的API: PHP, Perl, Python, Java, Ruby on Rails, and .Net 来控制图表。 ? AmCharts - AmCharts 是一个动画交互Flash图表...

    open flash chart (web 实例)

    在Web应用程序中,Open Flash Chart 常用于数据分析、监控系统、报表展示等场景。例如,在一个销售管理系统中,可以使用Open Flash Chart 实时展示各产品线的销售数据,通过折线图反映销售趋势,柱状图对比不同产品...

    open-flash-chart-2-hyperion.zip

    将Open Flash Chart 2与Hyperion结合,可以在Hyperion生成的报表数据基础上,利用OFC2的图表展示能力,构建出直观、动态的数据可视化界面。这使得非技术人员也能轻松理解复杂的业务数据,提高数据分析效率。具体实现...

    jfreechart and open flash chart整理

    《JFreeChart与Open Flash Chart详解》 在数据可视化领域,JFreeChart和Open Flash Chart是两个备受关注的图表库,它们为Java开发者提供了强大的图形绘制能力,使得复杂的数据能够以直观、美观的方式呈现出来。本文...

    c#操作excel对象处理带有chart的报表源码

    在C#编程环境中,操作Excel对象来处理带有图表(Chart)的报表是一项常见的任务,特别是在B/S架构(浏览器/服务器模式)的应用程序中。本文将深入探讨如何利用C#进行Excel处理,特别是与图表相关的操作,并结合OLE...

Global site tag (gtag.js) - Google Analytics