zoukankan      html  css  js  c++  java
  • .NET 使用 Highcharts生成扇形图 柱形图

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

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

    3、在Default.aspx页面引用js

    4、在 body 下添加一个<div id="container" style=" 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                         else
    39                         {
    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: 'white'
    55                     }
    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: false
    66                         }
    67                         }
    68                     ]
    69                     });
    70                 });
    71     </script>
    72 
    73 </head>
    74 <body>
    75     <form id="form1" runat="server">
    76     <div>
    77         <div id="container" style=" 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 GO
    11 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'111405060432', N'王小明', N'', N'金融系', N'经济学院', N'金融112')
    12 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'09402260215', N'王销硕', N'', N'材料成型及控制工程', N'材料科学与工程学院', N'焊接123')
    13 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08104160407', N'冯静', N'', N'金融学', N'经济学院', N'金融091')
    14 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'17108240152', N'王哲', N'', N'环境工程', N'化工与制药学院', N'环境101')
    15 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'07110020114', N'刘龙', N'', N'应用物理学', N'物理与工程学院', N'应物081')
    16 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'12118010137', N'杨冬来', N'', N'临床医学', N'医学院', N'临床089')
    17 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'14118031015', N'连新东', N'', N'临床医学', N'医学院', N'临床087')
    18 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'07118020434', N'胡小飞', N'', N'护理学', N'医学院', N'护理012')
    19 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'07119010329', N'张新宇', N'', N'建筑学', N'规划与建筑工程学院', N'建筑042')
    20 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'10101060311', N'靳晓蕊', N'', N'机械设计制造及其自动化', N'机电工程学院', N'机制082')
    21 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'12101060806', N'范航以', N'', N'机械设计制造及其自动化', N'机电工程学院', N'机设012')
    22 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'11102060304', N'郭硕好', N'', N'材料成型及控制工程', N'材料科学与工程学院', N'焊接093')
    23 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08104100602', N'蔡杰', N'', N'冶金工程', N'材料科学与工程学院', N'冶金091')
    24 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'09103450225', N'王小昆', N'', N'热能与动力工程', N'车辆与动力工程学院', N'制冷081')
    25 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'03102050229', N'余洲', N'', N'热能与动力工程', N'车辆与动力工程学院', N'制冷051')
    26 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'06104050601', N'陈蒙', N'', N'热能与动力工程', N'车辆与动力工程学院', N'制冷081')
    27 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'12103290126', N'吴刚', N'', N'交通运输', N'车辆与动力工程学院', N'交通081')
    28 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08103590135', N'张楠', N'', N'交通运输', N'车辆与动力工程学院', N'交通081')
    29 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'05104020210', N'李科', N'', N'电子信息工程', N'电子信息工程学院', N'电信082')
    30 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08107060113', N'沈召花', N'', N'计算机科学与技术', N'电子信息工程学院', N'计算机111')
    31 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'09302060323', N'王是江', N'', N'计算机科学与技术', N'电子信息工程学院', N'计算机123')
    32 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08134090220', N'王大毅', N'', N'信息工程', N'电子信息工程学院', N'信工091')
    33 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'13176070105', N'郝军', N'', N'信息管理与信息系统', N'管理学院', N'信管091')
    34 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08119010107', N'高涛', N'', N'建筑学', N'规划与建筑工程学院', N'建筑091')
    35 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'09189010113', N'刘亮', N'', N'建筑学', N'规划与建筑工程学院', N'建筑121')
    36 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'08179010114', N'刘洋', N'', N'建筑学', N'规划与建筑工程学院', N'建筑121')
    37 INSERT [dbo].[S] ([学号], [姓名], [性别], [专业], [院系], [班级]) VALUES (N'11109810516', N'马红', N'', N'建筑学', N'规划与建筑工程学院', N'建筑081')
    38           
    View Code

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

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

  • 相关阅读:
    Mysql 从入门到遗忘
    Centos7开放及查看端口
    创建及修改数据库
    02_python是一种什么语言?
    03_SQL server数据类型
    02_关系数据库
    01_初识数据库
    kali 更新源
    01_Python简介
    Alertmanager高可用
  • 原文地址:https://www.cnblogs.com/luoyangcn/p/3888450.html
Copyright © 2011-2022 走看看