首页 > 代码库 > .NET 使用 Highcharts生成扇形图 柱形图

.NET 使用 Highcharts生成扇形图 柱形图

1、首先新建一个.NET网站,如图所示:

 

2、引用所需要的js类库,如下图 highcharts.js可以在网上搜索就可以找到下载了。

3、在Default.aspx页面引用js

4、在 body 下添加一个<div id="container" style="width: 98%; height: 500px; margin: 0 auto"> , 前台代码如下

 1   <script type="text/javascript"> 2     $(function() { 3      var line1 = <%=manTotal%>;  4       var data = [<%=percentageStr%>]; 5         $(#container).highcharts({ 6             title: { 7                 text: 组合图 8             }, 9             xAxis: {10                 categories:<%=xaxisStr%>11             },12               yAxis: {13                         min: 0,14                         title: {15                             text: 人数 (人)  // //Y轴坐标标题  labels:纵柱标尺  16                         }17                     },18             credits: {19                 enabled: false//坑爹的属性,去掉官网的链接20             },21 //            labels: {22 //                items: [{23 //                    html: ‘‘,24 //                    style: {25 //                        left: ‘50px‘,26 //                        top: ‘18px‘,27 //                        color: (Highcharts.theme && Highcharts.theme.textColor) || ‘black‘28 //                    }29 //}]30 //                },31                  tooltip: {32                         formatter: function() {33                         if(this.percentage!=null)34                         {35                           return <b>+ this.point.name +</b>: +Highcharts.numberFormat(this.percentage,2)+%; 36                             //return ‘<b>‘+ this.point.name +‘</b>: ‘+ this.percentage +‘ %‘;37                         }38                         else39                         {40                                return <b>+ this.x +:</b>+this.y +;41                         }42                     }},43                 series: [{44                     type: column,45                     data: line1,46                     name: 柱形图47                  } , {48                     type: spline,49                     data: line1,50                     name: 折线图,51                     marker: {52                         lineWidth: 2,53                         lineColor: Highcharts.getOptions().colors[3],54                         fillColor: white55                     }56                 }, {57                     type: pie,58                     name: ‘‘,59                     name: 扇形图,60                     data:data,61                         center: [100, 80],62                         size: 150,63                         showInLegend: false,64                         dataLabels: {65                             enabled: false66                         }67                         }68                     ]69                     });70                 });71     </script>72 73 </head>74 <body>75     <form id="form1" runat="server">76     <div>77         <div id="container" style="width: 98%; height: 500px; margin: 0 auto">78         </div>79     </div>80     </form>81 </body>82 </html>
View Code

5、后台代码如下:

 1 protected string manTotal = string.Empty; 2         protected string femanTotal = string.Empty; 3         protected string xaxisStr = string.Empty; 4         protected void Page_Load(object sender, EventArgs e) 5         { 6             BindDistribution(); 7         } 8         public  string percentageStr=""; 9         private void BindDistribution()10         {11             System.Data.DataTable dt = GetData();12             StringBuilder sb1 = new StringBuilder();13             StringBuilder sb2 = new StringBuilder();14             StringBuilder sb3 = new StringBuilder();15 16 17             for (int i = 0; i < dt.Rows.Count; i++)18             {19                 sb1.AppendFormat("{0},", dt.Rows[i]["人数"].ToString());20                 sb3.AppendFormat("‘{0}‘,", dt.Rows[i]["专业"].ToString());21                 percentageStr = "[‘" + dt.Rows[i]["专业"].ToString().Trim() + "‘," + dt.Rows[i]["人数"].ToString().Trim() + "]" + "," + percentageStr;22             }23             manTotal = "[" + sb1.ToString().TrimEnd(,) + "]";   24             xaxisStr = "[" + sb3.ToString().TrimEnd(,) + "]";25         }26         public static string connStrings = @"Data Source=.;Initial Catalog=S;Integrated Security=True";27         public static DataTable GetData()28         {29             using (SqlConnection con = new SqlConnection(connStrings))30             {31                 string sql = @"select  专业,count(专业) as ‘人数‘,32 round(count(专业)*1.0/(select count(*) from S),3)  as ‘百分比‘33 from S group by 专业34 ";35                 SqlDataAdapter ds = new SqlDataAdapter(sql, con);36                 DataTable dt = new DataTable();37                 ds.Fill(dt);38                 return dt;39             }40         }41     }
View Code

6、建立的数据库SQL语句如下

 1 CREATE TABLE [dbo].[S]( 2     [学号] [nvarchar](255) NOT NULL, 3     [姓名] [nvarchar](255) NULL, 4     [性别] [nvarchar](255) NULL, 5     [专业] [nvarchar](255) NULL, 6     [院系] [nvarchar](255) NULL, 7     [班级] [nvarchar](255) NULL 8 ) ON [PRIMARY] 9 10 GO11 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N111405060432, N王小明, N, N金融系, N经济学院, N金融112)12 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N09402260215, N王销硕, N, N材料成型及控制工程, N材料科学与工程学院, N焊接123)13 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08104160407, N冯静, N, N金融学, N经济学院, N金融091)14 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N17108240152, N王哲, N, N环境工程, N化工与制药学院, N环境101)15 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N07110020114, N刘龙, N, N应用物理学, N物理与工程学院, N应物081)16 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N12118010137, N杨冬来, N, N临床医学, N医学院, N临床089)17 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N14118031015, N连新东, N, N临床医学, N医学院, N临床087)18 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N07118020434, N胡小飞, N, N护理学, N医学院, N护理012)19 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N07119010329, N张新宇, N, N建筑学, N规划与建筑工程学院, N建筑042)20 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N10101060311, N靳晓蕊, N, N机械设计制造及其自动化, N机电工程学院, N机制082)21 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N12101060806, N范航以, N, N机械设计制造及其自动化, N机电工程学院, N机设012)22 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N11102060304, N郭硕好, N, N材料成型及控制工程, N材料科学与工程学院, N焊接093)23 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08104100602, N蔡杰, N, N冶金工程, N材料科学与工程学院, N冶金091)24 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N09103450225, N王小昆, N, N热能与动力工程, N车辆与动力工程学院, N制冷081)25 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N03102050229, N余洲, N, N热能与动力工程, N车辆与动力工程学院, N制冷051)26 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N06104050601, N陈蒙, N, N热能与动力工程, N车辆与动力工程学院, N制冷081)27 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N12103290126, N吴刚, N, N交通运输, N车辆与动力工程学院, N交通081)28 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08103590135, N张楠, N, N交通运输, N车辆与动力工程学院, N交通081)29 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N05104020210, N李科, N, N电子信息工程, N电子信息工程学院, N电信082)30 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08107060113, N沈召花, N, N计算机科学与技术, N电子信息工程学院, N计算机111)31 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N09302060323, N王是江, N, N计算机科学与技术, N电子信息工程学院, N计算机123)32 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08134090220, N王大毅, N, N信息工程, N电子信息工程学院, N信工091)33 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N13176070105, N郝军, N, N信息管理与信息系统, N管理学院, N信管091)34 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08119010107, N高涛, N, N建筑学, N规划与建筑工程学院, N建筑091)35 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N09189010113, N刘亮, N, N建筑学, N规划与建筑工程学院, N建筑121)36 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N08179010114, N刘洋, N, N建筑学, N规划与建筑工程学院, N建筑121)37 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N11109810516, N马红, N, N建筑学, N规划与建筑工程学院, N建筑081)38           
View Code

7、最后浏览页面,如下图

总结:更多关于生成图表的资源,可以访问 highchart   http://www.highcharts.com/demo/pie-gradient  官方网址