.net后台输出渐变饼图(基于highcharts)

首页在页面中要引用highcharts的脚本文件:

<script src="/js/highcharts.js" type="text/javascript"></script>
<script type="text/javascript" src="/js/highcharts-more.js"></script>

下面是封装的代码:

/// <summary>
        /// 转出渐变饼图
        /// </summary>
        /// <param name="containerId">要放置图表的容器的ID</param>
        /// <param name="title">图表上方的文字</param>
        /// <param name="name">鼠标移上饼图时,显示在提示前面的文字</param>
        /// <param name="dataStr">图表数据,形式如:['Firefox',700],['IE',800],['Safari',300]或{name:'IE',  y:26.8},{name: 'Chrome',y: 12.8,sliced: true,selected: true}</param>
        /// <param name="isNeedClick">是否需要加点击事件,如果需要,则设置scriptStr的值</param>
        /// <param name="scriptStr">要附加的脚本,写在function中的内容,不用写function(){},直接写内容即可</param>
        /// <returns></returns>
        public static string GetPieChar(string containerId, string title, string name, string dataStr,string unit="吨",bool isNeedClick=false,string scriptStr=null)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {\r\n");
            sb.Append("    return {\r\n");
            sb.Append("        radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },\r\n");
            sb.Append("        stops: [\r\n");
            sb.Append("            [0, color],\r\n");
            sb.Append("            [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken\r\n");
            sb.Append("        ]\r\n");
            sb.Append("    };\r\n");
            sb.Append("});\r\n");
            sb.Append("    $('#" + containerId + "').highcharts({\r\n");
            sb.Append("        chart: {\r\n");
            sb.Append("            plotBackgroundColor: null,\r\n");
            sb.Append("            plotBorderWidth: null,\r\n");
            sb.Append("            plotShadow: false\r\n");
            sb.Append("        },\r\n");
            sb.Append("        title: {\r\n");
            sb.Append("            text: '"+title+"'\r\n");
            sb.Append("        },\r\n");
            sb.Append("        tooltip: {\r\n");
            sb.Append("    	    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'\r\n");
            sb.Append("        },\r\n");
            sb.Append("        plotOptions: {\r\n");
            sb.Append("            pie: {\r\n");
            sb.Append("                allowPointSelect: true,\r\n");
            sb.Append("                cursor: 'pointer',\r\n");
            sb.Append("                dataLabels: {\r\n");
            sb.Append("                    enabled: true,\r\n");
            sb.Append("                    color: '#000000',\r\n");
            sb.Append("                    connectorColor: '#000000',\r\n");
            sb.Append("                    formatter: function() {\r\n");
            sb.Append("                        return '<b>'+ this.point.name +'</b>: '+ this.y+' "+unit+"';\r\n");
            sb.Append("                    }\r\n");
            sb.Append("                }\r\n");
            
            sb.Append("            }\r\n");
            sb.Append("        },\r\n");
            sb.Append("        series: [{\r\n");
            sb.Append("            type: 'pie',\r\n");
            sb.Append("            name: '"+name+"',\r\n");
            sb.Append("            data: [\r\n");
            sb.Append("            "+dataStr+"\r\n");
            sb.Append("            ]\r\n");
            if (isNeedClick)
            {
                sb.Append("                ,events:{\r\n");
                sb.Append("                'click':function(e){\r\n");
                sb.Append(scriptStr);
                sb.Append("                }\r\n");
                sb.Append("                }\r\n");
            }
            sb.Append("        }]\r\n");
            sb.Append("    });\r\n");
            return sb.ToString();
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值