highcharts 图表操作实例

这个是前段时间做的一个项目模块,实现内容是调查问卷,如:

1:你的性别?

2:你的年龄?

。。。。。。

后台根据提交的内容,通过图表显示比例出来

废话就不说了,贴上代码:

注意,我项目是mvc框架

前台代码:

<strong><span style="font-size:14px;"><div class="panel-body">
        <table width="100%" class="table-hover">
            <tbody>
                @if (Model != null && Model.Any())
                {
                    var i = 0;
                    foreach (var kvp in Model)
                    {
                        i++;
                        <tr>
                            <td>
                                <div class="row">
                                    <div class="col-md-6">
                                        <section class="panel">
                                            <header class="panel-heading"> 问题 @i:@kvp.Value  </header>
                                            <!--图表-->
                                            <div class="panel-body">
                                                <div <span style="color:#ff0000;">id='[email protected]' class="pieChart" </span>qname="@kvp.Value" qid="@kvp.Key"></div>
                                            </div>
                                        </section>
                                    </div>
                                    <div class="col-md-6">
                                        <section class="panel">
                                            <!--图表-->
                                            <header class="panel-heading">  <span class="tools pull-right"> <a class="fa fa-chevron-down" href="javascript:;"></a> <a class="fa fa-cog" href="javascript:;"></a> <a class="glyphicon glyphicon-dashboard" href="javascript:;"></a> </span> </header>
                                            <div class="panel-body">
                                                <div <span style="color:#ff0000;">id='[email protected]' class="pillarChart"</span> qname="@kvp.Value" qid="@kvp.Key"></div>
                                            </div>
                                        </section>
                                    </div>
                                </div>

                            </td>
                        </tr>
                    }
                    @Html.Hidden("pid", (int)ViewBag.ProId)
                }
                else
                {
                    <tr><td>当前结果分析还未有数据!</td></tr>
                }
            </tbody>
        </table>
    </div></span></strong>

大家要注意我红色标记的地方,是关键的地方,

js代码:

<strong><span style="font-size:14px;">   <!--图表highcharts-->
    <script src="http://cdn.pisen.com.cn/pmc/plugins/highcharts/highcharts.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //饼图2
           <span style="color:#ff0000;"> $(".pieChart")</span>.each(function () {
                ShowPie($(this).attr("qid"));
            });
            //柱形
            <span style="color:#ff0000;">$(".pillarChart")</span>.each(function () {
                ShowPillar($(this).attr("qid"), $(this).attr("qname"));
            });
        });
        //获取饼图数据
        function ShowPie(qid) {
            var postdata = { qid: qid, pid: $("#pid").val() };
            $.post('@Url.Action("QueryPic", "ResultChart")', postdata, function (data) {
                GetPie(eval(data), qid);
            }, "script");
        }
        //获取柱形数据
        function ShowPillar(qid, qname) {
            var postdata = { qid: qid, pid: $("#pid").val() };
            $.post('@Url.Action("QueryPillar", "ResultChart")', postdata, function (data) {
                GetPillar(eval("[" + data + "]"), qid, qname);
            }, "json");
        }
        //获取饼图数据
        function GetPie(newdata, qid) {
            //执行饼图显示方法
           <span style="color:#ff0000;"> $('#pic_' + qid)</span>.highcharts({
                chart: {
                    borderWidth: 0,
                    plotShadow: false,
                    plotBorderWidth: 0
                },
                colors: ['#f66930', '#ecb939', '#48abee', '#f58d48', '#3dbd5b', '#81e0d6', '#80edbb'],
                title: {
                    text: ''
                },
                tooltip: {
                    pointFormat: '{series.name}: {point.percentage:.1f}%'
                },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: true,
                            color: '#000000',
                            connectorColor: '#000000',
                            format: '<b>{point.name}</b>: {point.percentage:.1f} %'
                        }
                    }
                },
                series: [{
                    type: 'pie',
                    name: 'Browser share',
                    data: newdata
                }]

            });
        }

        //获取柱形图
        function GetPillar(newdata, qid, qname) {
           <span style="color:#ff0000;"> $('#pillar_' + qid)</span>.highcharts({
                chart: {
                    type: 'column'
                },
                colors: ['#f66930', '#ecb939', '#48abee', '#f58d48', '#3dbd5b', '#81e0d6', '#80edbb'],
                title: {
                    text: ''
                },
                subtitle: {
                    text: ''
                },
                xAxis: {
                    categories: ['' + qname + '']
                },

                yAxis: {
                    title: {
                        text: null
                    },
                    min: 0,
                    lineWidth: 1,
                    lineColor: '#c0c0c0',
                    labels: {
                        formatter: function () {
                            return this.value;
                        }
                    }
                },
                tooltip: {
                    crosshairs: true,
                    shared: true
                },
                plotOptions: {
                    column: {
                        pointPadding: 0.2,
                        borderWidth: 0
                    }
                },
                series: newdata
            });
        }
    </script></span></strong>

后台方法:后台注意是返回生成图表的格式数据

    <strong><span style="font-size:14px;">    /// <summary>
        /// 获取饼图数据
        /// </summary>
        /// <param name="qid">问题主iD</param>
        /// <param name="pid">问题ID</param>
        /// <returns>获取饼图数据</returns>
        public ActionResult QueryPic(int? qid, int? pid)
        {
            if (!pid.HasValue && !qid.HasValue) return JavaScript("");

            var chartList = _resultChartBo.QueryChartByQuestId(pid.Value);
            var strbBuilder = new StringBuilder();

            strbBuilder.Append("[");

            foreach (var dic in chartList.Where(m => m.QId == qid.Value).ToList())
            {
                strbBuilder.AppendFormat("['{0}',{1}],", dic.OptionName, dic.Con);
            }

            var strPic = strbBuilder.ToString().Substring(0, strbBuilder.ToString().Length - 1);
            strPic += "]";

            return JavaScript(strPic);
        }

        /// <summary>
        /// 获取柱形图数据
        /// </summary>
        /// <param name="qid">问题主iD</param>
        /// <param name="pid">问题ID</param>
        /// <returns>获取柱形图数据</returns>
        public ActionResult QueryPillar(int? qid, int? pid)
        {
            if (!pid.HasValue && !qid.HasValue) return Json("");

            var chartList = _resultChartBo.QueryChartByQuestId(pid.Value);
            var strBuild = new StringBuilder();
            var categories = new StringBuilder();
            var categ = string.Empty;
            if (null != chartList && chartList.Count > 0)
            {
                foreach (var dic in chartList.Where(m => m.QId == qid.Value).ToList())
                {
                    strBuild.Append("{");
                    strBuild.AppendFormat("name: '{0}',data: [{1}]", dic.OptionName, dic.Con);
                    //strBuild.Append("{");
                    //strBuild.AppendFormat("y: {0},marker: ", dic.Con);
                    //strBuild.Append("{symbol: 'url(../plugins/highcharts/img/st-0159.gif)'}");
                    //strBuild.Append("}");
                    //strBuild.Append("]");
                    strBuild.Append("},");

                    categories.AppendFormat("'{0}',", dic.QName);
                }
                if (categories.Length > 0)
                {
                    categ = categories.ToString().Substring(0, categories.ToString().Length - 1);
                }
                ViewBag.Categories = categ;
                //ViewData["Categories"] = categ;
            }

            //去掉最后一个字符
            var strPillar = string.Empty;
            if (strBuild.Length > 0)
            {
                strPillar = strBuild.ToString().Substring(0, strBuild.ToString().Length - 1);
            }
            return Json(strPillar);
        }</span></strong>

highcharts插件下载地址:highcharts.rar

效果图:

时间: 2024-10-14 19:27:14

highcharts 图表操作实例的相关文章

highCharts图表入门实例

本文通过讲解Highcharts生成一个简单的3D柱状图实例来学习Highcharts的使用. JSP 页面 1.需要引入的js文件 <script src="<%=basePath%>javascript/jquery-1.6.1.js"></script> <script src="<%=basePath%>javascript/wiassess/highCharts4.0.3/highcharts.js"&

HighCharts基本使用实例(入门)

HighCharts 摘要 HighCharts是眼下最为流行的图表插件,应用范围广泛,眼下支持曲线图.区域图.3D图.柱状图.饼图.散列图.混合图等,而且还支持一些拓展的特殊图表,如:仪表图.极地图.箱线图.瀑布图等.因工作中用到,所以在这里我仅仅做最主要的配置使用. 官方站点:www.highcharts.com,有兴趣的同学也能够去上面学习很多其它的内容. 使用 首先须要到下载安装包 - highcharts下载 解压,然后导入两个js文件,然后写代码.举个官网上最简单的样例: <!doc

jQuery HighchartsTableHTML表格转Highcharts图表插件

版权申明jQuery HighchartsTable 由 PMSIpilot 创建,中文使用文档由Highcharts中文网发布本文由Theo.红烧鸡翅膀.Mr.Zhang 翻译整理,版权归Highcharts中文网所有,除非得到允许,不允许以任何形式转载! 一.关于(About) 1.简介 HighchartsTable是一款基于jQuery编写的HTML表格转换Highcharts图表的插件.利用它,你只需要关注HTML表格配置即可创建Highcharts图表! 2.运行原理 Highcha

转:Highcharts图表控件的使用

摘要 Highcharts图表控件是目前使用最为广泛的图表控件.本文将从零开始逐步为你介绍Highcharts图表控件.通过本文,你将学会如何配置Highcharts以及动态生成Highchart图表. 目录 前言(Preface) 安装(Installation) 如何设置参数(How to set up the options) 预处理参数(Preprocess the options) 活动图(Live charts) 转:http://www.cnblogs.com/liuhaorain

highCharts图表入门简介

一.Highcharts简介 Highcharts:功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯js图表库 Highcharts是一款纯javascript编写的图表库,能够很简单便捷的在Web网站或Web应用中添加交互性的图表,Highcharts目前支持直线图.曲线图.面积图.柱状图.饼图.散点图等多达18种不同类型的图表,可以满足你对Web图表的任何需求 ! 二.Highcharts的构造 三.名词解释 英文名 中文名 描述 lang 语言文字对象 所有Highcharts文字相

在asp.net中如何自己编写highcharts图表导出到自己的服务器上来

1.准备工作:网上下载highcharts导出的关键dll.      1).Svg.dll:因为highcharts的格式其实就是一个xml,采用svg的方式画图:      2).itextsharp.dll:这样主要是用于处理和提取highcharts图表内的文字以及编码问题: 2.创建一个简单asp.net项目,并把上述两个程序集引入到项目中,OK.3.给出页面代码: <%@ Page Language="C#" AutoEventWireup="true&qu

FLEX 集合数组ArrayCollection操作实例

FLEX 集合数组ArrayCollection操作实例 <?xml version="1.0" encoding="utf-8"?> <!-- Simple example to demonstrate the Halo DataGrid control. --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="librar

CentOS 配置防火墙操作实例(启、停、开、闭端口)

CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service   iptables status<回车>   停止防火墙: [root@localhost ~]# service   iptables stop <回车>   启动防火墙: [root@localhost ~]# service   iptables start <回车>   重启防火墙: [root@loc

关于Highcharts图表组件动态修改属性的方法(API)总结之Series

Highcharts图表组件内的Series很重要,如果说Categries是其大脑,那么Series就是其心脏.这两者才是Highcharts图表组件的重中之重啊.接下来就为大家介绍关于设置Series的相关方法. 一.目录结构 二.API 1.addPoint(添加一个数据点) 参数: options:数据值(①可以是具体的一个Y轴数值,那么X轴坐标系统会随即分配一个:②可以设置一个数组,有着X和Y的数值,如:[xValue,yVlaue] 这样的形式:③可以设置一个Object(对象),详