`
chenxueyong
  • 浏览: 342067 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JS 图表工具可以结合extjs实现

阅读更多

OpenFlashChart简介

by valensoft 2009-1-10 8:29:00

OpenFlashChart是一款开源的以Flash和Javascript为技术基础的免费图表,用它能创建一些很有效果的报表分析图表。

最重要的是它是开源和免费的,由于平时我使用的是.NET的开发技术,所以就以.NET技术为研究对象,当然它可以支持多种语言。

如何工作?

  1. 使用浏览器浏览网页
  2. 浏览器下载带有OpenFlashChart的网页 
  3. 显示图表.
  4. 只要告诉data文件给OpenFlashChart即可。其余的事由OpenFlashChart引擎来做吧。

饼图:

 3D 柱状图等等。

 

 

Live Demo

Emprise JavaScript Charts
Y Axis0100200300400500240211
X Axis09/20
2007
08/21
2008
07/23
2009
06/24
2010
05/26
2011
06/24
2010
09/16
2010
04/01
2010
06/24
2010
09/16
2010
12/09
2010
03/03
2011
X Axis
Max Zoom Reached
Chart Legend
Series 1
Series 2
Emprise JavaScript Charts

Features

  • Interactive: Features such as Hints, Mouse Tracking, Mouse Events, Key Tracking and Events, Zooming, Scrolling, and Crosshairs raise interactivity and user experience in web charting to a new level.
  • Sample Area ChartAxis Scaling: There's no need to determine your data range before hand. EJSChart will calculate and scale automatically to fit whatever data it is presented with.
  • Auto Zooming, Scrolling: Too much data and not enough screen real estate? Show it all. Let your end users zoom in on the pieces they're most interested in. Axis locking for single axis zoom, scrolling and automatic axis scaling are all included.
  • Sample Stacked ChartStackable Series: Multiple chart series can be stacked and combined to fit many charting needs.
  • Multiple Chart Types: Line, Area, Scatter, Pie, Bar and Function series are just the beginning. New series are just a few lines of JavaScript code away.
  • Ajax-Driven Data: EJSChart supports XML-formatted data and loads data on the fly. New series can be added and data updated in real time without page reloads.
  • Compatible: Built with compatibility in mind and tested on all major browsers, you can be assured your charts will function consistently for the broadest range of end users.
    See the full list of compatible browsers.
  • Plugin Free: 100% Pure JavaScript Charting Solution. No more worries of incompatible plugin versions or confusing security warnings. EJSChart is pure JavaScript and requires no client installation.
  • Customizable: Every aspect of the charting display can be configured and customized through well-documented properties and methods. Want to do more than just change the color of the background? Need a series type which doesn't already exist? EJSChart is fully customizable and extendable to provide the greatest flexibility and integration for existing site designs and needs.
Back To Top

Screen Shots

Sample Line Chart Sample Line Chart Sample Pie Chart Sample Pie Chart Sample Bar Chart Sample Bar Chart Sample Function Chart Sample Function Chart Sample Area Chart Sample Area Chart Sample Stacked Chart Sample Stacked Chart

 

 

FusionCharts Free(3)

 

    来看一个使用dataURL方式指定图表数据源的例子:  

<div id="chartdiv" align="center"></div>
<script type="text/javascript">
    
var chart = new FusionCharts("../Charts/FCF_Column2D.swf""ChartId""600""350");
    chart.setDataURL(
"Data/Column2D.xml");
    chart.render(
"chartdiv");
</script>

 

     主要的代码是一段js脚本,首先声明并实例化一个对象FusionChaets,然后使用该对象的setDataURL方法为图表指定一个包含图表数据的xml文件作为数据源,最后使用该对象的render方法在id属性为chartdiv的div元素中生成图表。

    上述对象的构造函数以及两个方法都是在FusionCharts.js文件中进行实现的,所以在包含上述代码的页面中应该首先包含对FusionCharts.js文件的引用。

    当然,这里的Column2D.xml并不是一个随随便便的xml文件,它需要使用特定的标签、属性等,否则,相应的swf文件将不能正常解析并显示图表数据。

    来看一下Column2D.xml的内容:    

<graph caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' decimalPrecision='0' formatNumberScale='0'>
    
<set name='Jan' value='462' color='AFD8F8' />
    
<set name='Feb' value='857' color='F6BD0F' />
    
<set name='Mar' value='671' color='8BBA00' />
    
<set name='Apr' value='494' color='FF8E46'/>
    
<set name='May' value='761' color='008E8E'/>
    
<set name='Jun' value='960' color='D64646'/>
    
<set name='Jul' value='629' color='8E468E'/>
    
<set name='Aug' value='622' color='588526'/>
    
<set name='Sep' value='376' color='B3AA00'/>
    
<set name='Oct' value='494' color='008ED6'/>
    
<set name='Nov' value='761' color='9D080D'/>
    
<set name='Dec' value='960' color='A186BE'/>
</graph>

 

     相对来说,这样的xml文件中的内容还是比较容易进行理解的,而且,FusionCharts的文档中提供了关于各种不同图表类型可以接受的xml文件标签、属性等的参考,参见文档中的“Chart XML Reference”部分。

    通过比较不同类型的图表的xml数据格式,可能会发现,除了漏斗图、K线图、甘特图等特殊图表之外,同一类别中常见图表(如单序列图表中的2D柱状图、3D柱状图、2D折线图、2D饼图、3D饼图、2D条形图、2D面积图、2D圆环图)的xml文件格式是类似的,这样在特定应用中,当需要更改图表类型时,我们只需要将js中的FusionCharts对象重新实例化即可,而不需要更改具体的xml数据源。如上述2D柱状图更改为2D条形图时,我们可以使用以下函数:  

<script type="text/javascript">
    
function changeChartTypeToBar()
    
{
        chart 
= new FusionCharts("../Charts/FCF_Bar2D.swf""ChartId""600""350");
        chart.setDataURL(
"Data/Column2D.xml");
        chart.render(
"chartdiv");
    }

</script>

 

     此时,整个页面不必整个刷新,只需要刷新图表区即可。而且,很显然,这是一个比较简单的操作,需要注意:

  • 不同类型的图表的xml数据源可能具有特定的xml标签或属性,所以在需要更改图表类型时,尽量使用在不同图表类型中通用的标签或属性
  • 还是要强调,不同类型图表具有不同的含义,虽然可以方便地在不同图表类型之间进行转换,但是如果图表类型选择错误,很可能带来的是画蛇添足之嫌。如上面的时序数据,如果使用饼图可能就不那么恰当了,虽然将该图表转换为饼图是非常简单的操作

    另外,使用dataURL方式对图表进行指定的数据源,并不要求是一个实际存在的物理xml文件,可以是任何一个返回XML文件或片断的HTTP请求,只有这样,我们才能根据特定的查询条件或过滤表达式方便地从数据库中检索图表所需数据先是在图表上。很显然,这种方式下只能通过POST传递HTTP请求需要的参数,此时,需要注意的是由于FusionCharts对于特殊字符的敏感性,在为FusionCharts对象使用setDataURL指定参数时,该参数字符串中最好不要包含除了英文字符、数字、?、&和-之外的字符,当然,最好使用Javascript中的escape函数对其进行编码。

分享到:
评论

相关推荐

    ExtjS实现聊天功能

    WebSocket提供双向通信,可以实现实时的消息推送;而Long Polling则是一种模拟实时的解决方案,通过长时间保持HTTP连接,当有新消息时立即返回给客户端。 4. **事件监听**:ExtJS的事件模型非常强大,我们可以监听`...

    extjs实现的带标签、翻页动画的书

    ExtJS 是一个强大的JavaScript 框架,专用于构建富客户端Web应用程序。它提供了一整套组件和工具,包括表格、表单、菜单、面板、图表等,支持拖放、数据绑定、AJAX等功能,使得开发者能够创建出复杂的、交互性强的...

    extjs 图表制作

    ExtJS 是一个强大的JavaScript框架,主要用于构建富客户端应用程序。它提供了丰富的组件库,其中包括...在实际项目中,结合ExtJS的图表功能,可以有效地将大量数据转化为易于理解的图形,提升数据解读的效率和准确性。

    FCKeditor结合extjs实例

    总的来说,"FCKeditor结合extjs实例"展示了在Web开发中如何利用现有的开源工具提高效率和用户体验。通过合理利用这两个库,开发者可以快速创建出功能丰富、界面美观的应用程序,同时降低了开发成本和复杂性。

    ejschart v2.2 JS图表工具 Emprise JavaScript Charts

    EJSChart是一款强大的JavaScript图表工具,版本为2.2,主要由Emprise公司开发,用于在Web应用中创建丰富的、交互式的数据可视化效果。这款库特别适合与ExtJS框架配合使用,可以为网页添加各种类型的图表,如折线图、...

    Extjs结合fckeditor+c#实现新闻发布

    【标题】:“Extjs结合fckeditor+c#实现新闻发布”是一个基于Web的应用开发示例,它展示了如何使用Extjs作为前端框架,与富文本编辑器fckeditor集成,并利用C#后端语言来处理新闻发布功能。这一组合可以创建一个交互...

    extjs实现报表

    - **图表集成**:利用ExtJS的Chart组件,可以将数据可视化,如柱状图、折线图和饼图。 - **自定义渲染器(Renderer)**:为列值设置自定义格式或逻辑,增强数据展示效果。 4. **排序与过滤** - **列排序**:允许...

    ExtJS实现Excel的导出功能(poi)

    总结来说,结合ExtJS的前端界面和Apache POI的Java库,我们可以实现在Web应用中动态生成Excel文件并提供给用户下载的功能。这个过程涉及到数据的获取、Excel文件的创建、样式设置、数据填充以及文件的输出。对于更...

    EXTjs图开编程EXTJS

    EXTJS是一种基于JavaScript的前端开发框架,专用于构建富客户端应用程序。它由Sencha公司开发,提供了丰富的组件库...在实际项目中,结合EXTJS的图形组件,我们可以实现复杂的业务逻辑,提高工作效率,提升用户满意度。

    ExtJS+FusionCharts结合的两种方法

    标题中的“ExtJS+FusionCharts结合的两种方法”是指在Web开发中,如何将ExtJS框架与FusionCharts图表库结合起来使用,以实现交互式的、数据丰富的可视化界面。ExtJS是一个强大的JavaScript库,用于构建复杂的用户...

    adapter-extjs.rar_extjs chart_highchart_javascript

    在结合ExtJS和Highcharts时,JavaScript不仅用于控制页面的行为,还负责处理数据的加载、过滤、格式化,以及调用图表库的API来绘制和更新图表。 总结来说,`adapter-extjs.js`可能是一个关键的桥梁,它实现了ExtJS...

    Highstock与ExtJs结合使用

    在IT领域,Highstock和ExtJS是两种广泛使用的JavaScript库,它们各自专注于不同的功能,但可以协同工作以创建丰富的、交互式的Web应用程序。本篇文章将深入探讨如何将Highstock与ExtJS结合使用,并通过提供的PHP案例...

    ExtJs 开发指南书籍 实例 可视化工具

    5. **ExjsHotel.rar**:这个可能是基于ExtJs开发的一个酒店预订系统的示例项目,开发者可以从中学习到如何构建一个完整的业务应用,包括如何组织代码、如何实现交互逻辑、如何处理用户输入等。 6. **extjs实用开发...

    ThinkPHP和EXTJS结合做的货物管理系统,有图表统计功能

    《ThinkPHP与EXTJS结合构建的货物管理系统及图表统计功能详解》 在信息化时代,高效、精准的货物管理系统是企业日常运营的关键。本系统利用PHP的ThinkPHP框架和EXTJS前端框架,结合MySQL数据库,构建了一个功能完善...

    ExtJS 图形开发工具

    ExtJS是一种基于JavaScript的开源框架,专为构建富互联网应用程序(RIA)而设计。它提供了丰富的组件库,包括数据网格...同时,结合如Sencha Architect这样的专业工具,可以进一步提升开发体验,实现更流畅的开发流程。

    functioncharts与extjs结合,做多折线图

    标题中的"functioncharts与extjs结合,做多折线图"指的是使用FunctionCharts库和ExtJS框架协同工作,创建一个可以展示多个折线图的交互式图表应用。FunctionCharts是一款强大的图表绘制库,它提供了丰富的图表类型,...

    EXTJS与.NET开发

    6. **EXTJS Form与.NET表单验证**:EXTJS的表单组件可以与.NET的服务器端验证机制结合,实现前后端的表单验证一致性,确保数据的准确性和安全性。 7. **EXTJS Ajax与.NET WebMethods**:EXTJS的Ajax组件可以调用...

    ASP.NET结合EXTJS动态生成Grid列表的例子程序源码

    EXTJS则是一个前端JavaScript库,它提供了丰富的用户界面组件,如数据网格(Grid)、图表、表单等,能够创建高度交互的Web应用。这个例子程序源码主要展示了如何将两者结合,动态生成Grid列表。 在ASP.NET中,...

    Extjs实现的宾馆管理软件

    综上所述,"Extjs实现的宾馆管理软件"项目结合了强大的前端ExtJS框架和稳定的后端.NET技术,构建了一个全面的酒店管理系统。它展示了如何利用现代Web技术提高工作效率,为用户提供流畅的交互体验,同时也为学习者...

    基于EXTJS 的在线EXCEL编辑器

    总之,基于EXTJS的在线EXCEL编辑器是一种高效且便捷的数据处理工具,结合了EXTJS的组件化和Web技术的优势,为用户提供了灵活的在线Excel操作体验。对于开发者来说,这是一个深入理解EXTJS框架和Web应用开发的好机会...

Global site tag (gtag.js) - Google Analytics