`

转载:EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts

 
阅读更多

基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts

在我们做各种应用的时候,我们可能都会使用到图表统计,以前接触过一些不同的图表控件,在无意中发现了图表控件Highcharts,其强大的功能和丰富的互动效果,令人难以忘怀。本篇主要介绍在Web开发中使用图表控件Highcharts,以及对其进行统一汉化等操作,让我们的程序功能更加丰富,内容更加美观。

1、Highcharts基础介绍

Highcharts是一个非常流行,界面美观的纯Javascript图表库。它主要包括两个部分:Highcharts和Highstock。Highcharts可以为您的网站或Web应用程序提供直观,互动式的图表。目前支持线,样条,面积,areaspline,柱形图,条形图,饼图和散点图类型。Highstock可以为您方便地建立股票或一般的时间轴图表。它包括先进的导航选项,预设的日期范围,日期选择器,滚动和平移等等。

HIghChartS官网:http://www.highcharts.com/

HighCharts Demo:http://www.highcharts.com/demo/

Highcharts支持曲线图、饼图、柱状图、仪表图、散点图等等几十种图形,界面展示效果非常丰富,3D效果也很好看。列出几个供参考下吧

   

Highcharts使用jQuery等Javascript框架来处理基本的Javascript任务。因此,在使用Highcharts之前,需要在页面头部引用这些脚本文件。如果你使用jQuery作为基本框架,那么你需要在页面头部同时引用jQuery和Hightcharts两个文件就可以了。

由于我在Web开发框架中,主要采用了MVC+EasyUI的方式,因包含的文件如下所示。

复制代码
    @*添加Jquery,EasyUI和easyUI的语言包的JS文件*@
    <script type="text/javascript" src="~/Content/JqueryEasyUI/jquery.min.js"></script>
    <script type="text/javascript" src="~/Content/JqueryEasyUI/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="~/Content/JqueryEasyUI/locale/easyui-lang-zh_CN.js"></script>


    @*图表JS文件应用*@
    <script src="~/Content/JQueryTools/Highcharts/js/highcharts.js"></script>
复制代码

但是为了更好的展示效果,我们一般添加一个图标预定义的样式进去,同时添加导出功能的脚本,如下所示。

    @*图表JS文件应用*@
    <script src="~/Content/JQueryTools/Highcharts/js/highcharts.js"></script>
    <script src="~/Content/JQueryTools/Highcharts/js/modules/exporting.js"></script>
    <script src="~/Content/JQueryTools/Highcharts/js/themes/grid.js"></script>

当然,如果我们散点图、3D图形等内容,还需要引入一些额外的js文件的

    <script src="~/Content/JQueryTools/Highcharts/js/highcharts-more.js"></script>
    <script src="~/Content/JQueryTools/Highcharts/js/highcharts-3d.js"></script>

 

2、图表的生成操作

前面说了,这个图表控件主要就是使用Jquery和Javascript来实现,我们来分析下一个饼图的Demo代码。

复制代码
$(function () {
    $('#container').highcharts({
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        },
        title: {
            text: 'Browser market shares at a specific website, 2014'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        },
        series: [{
            type: 'pie',
            name: 'Browser share',
            data: [
                ['Firefox',   45.0],
                ['IE',       26.8],
                {
                    name: 'Chrome',
                    y: 12.8,
                    sliced: true,
                    selected: true
                },
                ['Safari',    8.5],
                ['Opera',     6.2],
                ['Others',   0.7]
            ]
        }]
    });
});
复制代码

上面的脚本主要就是根据series属性里面的数据进行生成饼图的,那么我们实际开发的时候,数据肯定不是固定的,一般我们是通过动态方式赋值的。

如我一般倾向于使用Jquery的Ajax方式,调用后台获得数据,然后进行绑定的。那么这种情况下,如何操作脚本了呢,我们来分析看看。

首先我们先在脚本函数里面,初始化一个chart对象,并把其中涉series数据data设置为空就是了。

复制代码
            var chart1 = new Highcharts.Chart({
                chart: {
                    renderTo: "container1",
                    plotBackgroundColor: null,
                    plotBorderWidth: null,
                    plotShadow: false,
                },
                title: {
                    text: '集团分子公司人员组成'
                },
                tooltip: {
                    pointFormat: '{series.name}: <b>{point.y}</b>'
                },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: true,
                            format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                            style: {
                                color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                            }

                        },
                        //showInLegend: true
                    }
                },
                series: [{
                    type: 'pie',
                    name: '人员数量',
                    data: []
                }]
            });
复制代码

第二步是通过Ajax调用后台连接获得数据,然后绑定到具体的属性上就可以了,具体代码如下所示。

复制代码
            //通过Ajax获取图表1数据
            $.ajaxSettings.async = false;
            var data1 = [];
            $.getJSON("/User/GetCompanyUserCountJson", function (dict) {                
                for (var key in dict) {
                    if (dict.hasOwnProperty(key)) {
                        data1.push([key, dict[key]]);
                    }
                };
                chart1.series[0].setData(data1);
            });
复制代码

而图表的HTML代码则是如下所示,主要就是新增一个div,id为container1,用来放置图表就是了。

复制代码
                             <div class="box">
                                 <div class="box-title">
                                     <div style="float: left">
                                         <img src="~/Content/JqueryEasyUI/themes/icons/customed/user.png" alt="" width="20" height="20" />
                                         图表1
                                     </div>
                                     <div style="float: right; padding-right: 10px;">更多</div>
                                 </div>
                                 <div class="box-content" style="height: 310px">
                                     <div id="container1" style="height: 300px;max-width:500px"></div>
                                 </div>
                             </div>
复制代码

完成以上的代码,我们运行就可以看到下面的图形了,这样看起来是不是比较酷一些呢。

3、图表的导出功能及菜单汉化

从上面的图表里面看到,每个图表的右上角,都有一个菜单的功能,里面有一些功能,如打印图片、导出图片等操作,具体菜单的表现如下所示。

但是上面的菜单式我经过了汉化处理的, 默认的显示效果是英文的,如下所示。

显然英文的菜单,不是我们希望的,我们需要汉化一下才更好,那么如何汉化上面的通用菜单呢,需要每个模块都重复一样的汉化吗,当然不需要了。我们可以把它放到全局设置里面。

前面我们介绍了,为了使得图表展示更好的效果,我们包含了一个grid.js的图表样式,其实里面也还有其他样式可以使用的,不过我觉得还是grid.js的样式最佳,如下所示。

那么既然使用了这个样式设置,我们把全局的一些设置,如汉化的操作,也放到这里就可以了。

我们在这个文件的底部,增加一个SetOption的操作代码就可以,这些汉化的菜单,由于我使用了最新版本,有些参数是和旧版本不一致的,所以冲着这个辛苦劲,应该推荐鼓励下哦。呵呵

设置汉化的代码。如下所示。

复制代码
// Apply the theme
var highchartsOptions = Highcharts.setOptions(Highcharts.theme);

//汉化图表菜单
Highcharts.setOptions({
    lang: {
        contextButtonTitle: "图表菜单",
        printChart: "打印图片",
        downloadJPEG: "下载JPEG 图片",
        downloadPDF: "下载PDF文档",
        downloadPNG: "下载PNG 图片",
        downloadSVG: "下载SVG 矢量图",
        exportButtonTitle: "导出图片"
    }
});

复制代码

 

基于MVC4+EasyUI的Web开发框架的系列文章:

基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍

基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计

基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍

基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作

基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

基于MVC4+EasyUI的Web开发框架经验总结(3)- 使用Json实体类构建菜单数据

基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts

基于MVC4+EasyUI的Web开发框架经验总结(5)--使用HTML编辑控件CKEditor和CKFinder

基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理

基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动

基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作

基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出

基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码

基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度

基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作

主要研究技术:代码生成工具、Visio二次开发、客户关系管理软件、病人资料管理软件、送水管理软件等共享软件开发
专注于Winform开发框架Web开发框架、WCF开发框架、微信门户开发框架的研究及应用。
  转载请注明出处:
撰写人:伍华聪  http://www.iqidi.com 
    
 
 
标签: Web开发框架
分享到:
评论

相关推荐

    EasyUI图表插件Highcharts源码Demo(Java)

    在Java开发中,我们通常会结合EasyUI框架来使用Highcharts,因为EasyUI提供了丰富的组件和易于使用的API,使得在后端处理数据并在前端展示变得更加简便。 EasyUI是一个基于jQuery的轻量级UI框架,它为开发者提供了...

    jquery-easyui.zip_easyui框架_html 框架_jquery-easyui

    这个压缩包“jquery-easyui.zip”包含了使用 EasyUI 实现的一个HTML框架,它主要用于简化网页开发,提高开发效率。 EasyUI 的核心优势在于它的组件化设计。它提供了诸如对话框(dialog)、表格(datagrid)、菜单...

    ASP.NET WebAPI+mvc4.0+EasyUI快速开发框架+通用权限管理系统源码

    1、基于ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout的架构设计开发 2、采用MVC的框架模式,具有耦合性低、重用性高、生命周期成本低、可维护性高、有利软件工程化管理等优点 3、采用WebAPI,客户端完全摆脱了代理...

    .NET+EasyUI快速开发框架

    《.NET + EasyUI 快速开发框架深度解析》 在现代软件开发中,高效、易用的开发框架是提升项目进度与质量的关键。".NET + EasyUI 快速开发框架"正是这样一种解决方案,它结合了.NET的技术优势与EasyUI的界面设计,为...

    EasyUI Web Admin HTML

    9. **集成其他技术**:EasyUI可以与其他前端框架(如Vue、React)或后端技术(如Spring、Node.js)结合使用,构建完整的Web应用。 10. **响应式设计**:为了适应不同设备的屏幕尺寸,EasyUI也提供了响应式布局的...

    ASP.NET MVC5+EasyUI企业开发框架源码

    ASP.NET MVC5+EasyUI企业开发框架源码是一款基于微软的ASP.NET MVC5技术和EasyUI前端框架构建的企业级应用开发框架。此框架旨在提供高效、稳定且易于维护的解决方案,适用于开发复杂的Web应用程序。下面将详细阐述这...

    Easyui框架.zip

    Easyui框架是一个流行的JavaScript库,专门用于快速开发用户界面,尤其在企业级Web应用中广泛应用。这个"Easyui框架.zip"文件包含了一整套用于构建前端界面的资源和组件,帮助开发者快速创建功能丰富的交互式网页。...

    ASP.NET MVC5+EasyUI企业开发框架源码-

    这个企业开发框架源码是学习和二次开发的良好资源,可以深入理解ASP.NET MVC5的开发流程和EasyUI的使用技巧,提升Web应用开发能力。下载并研究这些源码,可以了解到实际项目中的最佳实践,对个人技能的提升大有裨益...

    jquery-easyui-1.2.3

    《jQuery EasyUI 1.2.3:Web开发的强大工具》 jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列的预定义组件,极大地简化了网页应用的开发过程。这个压缩包“jquery-easyui-1.2.3”包含了版本1.2.3的...

    一套通用的Easyui+asp.net mvc开发框架源码

    【标题】"一套通用的Easyui+asp.net mvc开发框架源码"揭示了这是一个用于构建Web应用程序的基础架构,结合了两种技术:Easyui和asp.net MVC5。Easyui是一个基于jQuery的用户界面库,提供了丰富的组件和主题,用于...

    easyui-textbox和easyui-combobox的onchange事件响应实例

    在前端开发中,EasyUI 是一个基于 ...通过学习和理解这个实例,开发者可以更好地掌握 EasyUI 中的 `easyui-textbox` 和 `easyui-combobox` 的使用,以及如何处理 `onchange` 事件,从而提升项目开发的效率和质量。

    easyui源代码 jquery-easyui-1.2.2

    `jquery-easyui-1.2.2` 是 EasyUI 的一个版本,该版本包含了丰富的组件和功能,适用于创建数据驱动的Web应用程序。在这个压缩包`src`目录下,我们可以找到EasyUI的核心源代码,这将有助于我们深入理解其内部工作原理...

    007-ASP.NET MVC5+EasyUI企业开发框架源码.7z

    ASP.NET MVC5是一种微软开发的Web应用程序框架,用于构建可维护性和可测试性极高的Web应用。这个框架是ASP.NET的一部分,它结合了Model-View-Controller(MVC)设计模式,提供了对ASP.NET Web API的支持,使得开发...

    Net实战商用源码---ASP.NET MVC5+EasyUI企业开发框架源码

    综上所述,"Net实战商用源码---ASP.NET MVC5+EasyUI企业开发框架源码"是一个综合性的Web应用开发资源,包含了一个完整的MVC5后台框架和EasyUI前端UI库。开发者可以通过学习这个源码,深入了解如何在ASP.NET MVC5中...

    jquery-easyui 前端开发框架

    `jQuery EasyUI` 是一个基于 jQuery 的前端开发框架,它为开发者提供了丰富的组件和便捷的API,使得构建交互式Web应用变得更加简单。这个框架主要针对界面设计和用户体验优化,简化了HTML、CSS和JavaScript的复杂性...

    基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用

    在基于MVC4+EasyUI的Web开发框架中,界面控件是构建用户交互界面的关键元素。EasyUI是一个轻量级的JavaScript库,它提供了一系列的组件,使得开发者能够快速地构建美观且功能丰富的Web应用界面。在本文中,我们将...

    EasyUI_of_InsdepTheme-1.5.1-1.0.0-rc2

    3. `jquery.easyui-plus.min.js`:这可能是 EasyUI 的扩展或增强版本,可能包含了一些额外的插件或功能,比如自定义组件或改进的性能。 `index.html` 文件通常作为主入口点,用于展示 EasyUI 组件的使用示例。在这...

    easyUI,Highcharts,时间控件例子

    在IT领域,前端开发是构建用户界面的关键部分,而`easyUI`、`Highcharts`以及与时间控件相关的技术都是实现动态交互界面的重要工具。本文将深入探讨这些技术及其在实际应用中的作用。 首先,`easyUI`是一个基于...

    EasyUI做的漂亮的后台管理框架

    EasyUI是一款基于jQuery的前端开发框架,专门用于构建用户界面,尤其适合打造后台管理系统。它提供了丰富的组件,如表格、树形结构、下拉菜单、对话框等,以帮助开发者快速构建具有专业外观的Web应用。标题“EasyUI...

Global site tag (gtag.js) - Google Analytics