highcharts 图表操作实例

来源:互联网 发布:知学学院简介 编辑:程序博客网 时间:2024/05/16 16:06

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

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='pic_@kvp.Key' 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='pillar_@kvp.Key' 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


效果图:



0 0
原创粉丝点击