C#+JQuery+.Ashx+百度Echarts实现全国省市地图和饼状图动态数据图形报表的统计
在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈现的需求,经过几轮挑选,最终选择了百度的echarts作为报表基础类库。echarts功能强大,界面优美。由于客户是淘宝卖家,因此想要实现每个月全国各个省份各自购力如何,大家可以统计其他的,如果GDP 人口 等等。
百度echarts简介请参考
http://echarts.coding.io/doc/example.html
效果图如下:全部是动态数据



JS代码:
<!-- Charts Layout Stylesheet -->
<link href="assets/css/echartsHome.css" rel="stylesheet"/>
<script src="assets/js/esl.js"></script>
<script src="assets/js/codemirror.js"></script>
HTML代码:(放在中间呈现)
1.<div id="mapPieCharts" class="main" ></div><script src="assets/js/jquery-1.8.2.min.js"></script>
<script src="assets/js/echarts-map.js"></script>
<script src="assets/js/EchartsJson.js"></script>
EchartsJson JS里面的代码如下:
001.function needMap() {002.var href = location.href;003.return href.indexOf('map') != -1004.|| href.indexOf('mix3') != -1005.|| href.indexOf('mix5') != -1006.|| href.indexOf('dataRange') != -1;007. 008.}009. 010.var fileLocation = needMap() ? 'assets/js/echarts-map' : 'assets/js/echarts';011.require.config({012.paths: {013.echarts: fileLocation,'echarts/assets/js/pie': fileLocation,014.'echarts/assets/js/map': fileLocation,015.}016.});017. 018.require(019.[020.'echarts','echarts/chart/pie',needMap() ? 'echarts/chart/map' : 'echarts'021.],022.DrawCharts023.);024.function DrawCharts(ec) {025.FunDraw1(ec);026.}027. 028.function FunDraw1(ec) {029.//---地图饼状图 ---030.var mapChart = ec.init(document.getElementById('mapPieCharts'));031.mapChart.showLoading({text: "加载中...请等待" });032.mapChart.hideLoading();033.var seriesMapData;034.var seriesPieData;035.var legendData;036.$.ajax({037.type: "post",038.async: false, //同步执行039.url: "SearchHandler.ashx?MapPieType=MapPieChart",040.dataType: "json",041.success: function (result) {042.seriesMapData = eval('(' + result.split('_')[0] + ')');043.seriesPieData = eval('(' + result.split('_')[1] + ')');044.legendData = eval('(' + result.split('_')[2] + ')');045.},046.error: function (errorMsg) {047.alert("全国各省份订单销售量统计数据请求失败。");048.}049.});050.mapChart.setOption({051.title: {052.text: new Date().getFullYear() + '全国各省份订单销售量统计(月/单)',053.subtext: '数据来自WMS统计'054.},055.tooltip: {056.trigger: 'item'057.},058.legend: {059.x: 'right',060.selectedMode: false,061.data: legendData062.},063.dataRange: {064.orient: 'horizontal',065.min: 0,066.max: 200,067.text: ['购买力强', '低'],068.splitNumber: 0,069.color: ['orangered', 'yellow', 'lightskyblue']070.},071.animation: false,072.series: [073.{074.name: new Date().getFullYear() + '全国各省份订单销售量',075.type: 'map',076.mapType: 'china',077.mapLocation: {x: 'left'},078.selectedMode: 'multiple',079.itemStyle: {080.normal: { label: { show: true } },081.emphasis: { label: { show: true } }082.},083.data: seriesMapData084.},085.{086.name: new Date().getFullYear() + '全国各省份订单销售量',087.type: 'pie',088.roseType: 'area',089.tooltip: {090.trigger: 'item',091.formatter: "{a} <br />{b} : {c} ({d}%)"092.},093.center: [document.getElementById('mapPieCharts').offsetWidth - 250, 225],094.radius: [30, 120],095.data: seriesPieData096.}097.]098.});099. 100.}C#代码如下:
01.#region// 地图和饼状图组合查询02.if (!string.IsNullOrEmpty(context.Request["MapPieType"]))03.{04.//图例名称05.var legend = string.Empty;06.//饼状图数据 省份及统计的数据07.StringBuilder sbPieData = new StringBuilder();08.sbPieData.Append("[");09.//地图数据 省份及统计的数据10.StringBuilder sbMapData = new StringBuilder();11.sbMapData.Append("[");12. 13.using (PortalSearchDataContext db = new PortalSearchDataContext())14.{15.List<SeriesMapPieData> getMapPieDataList =16.(from province in17.(18.(from t in db.DOC_Order_Header19.where20.t.C_Address1 != "" && t.SOStatus == "99" &&21.t.OrderTime >= startMonth.Date.Date && t.OrderTime22.<= DateTime.Parse(endMonth.Date.ToString("yyyy-MM-dd 23:59"))23.group t by new24.{25.t.C_Address1,26.t.OrderTime27.} into g28.select new29.{30.ProName = g.Key.C_Address1.Substring(0, 3).Replace("省", "").Replace("壮", "")31..Replace("回", "").Replace("维", ""),32.Number = g.Count(),33.OrderTime = g.Key.OrderTime34.}))35.group province by new36.{37.province.ProName38.} into g39.orderby40.g.Sum(p => p.Number)41.select new SeriesMapPieData42.{43.name = g.Key.ProName,44.value = g.Sum(p => p.Number)45.}).ToList<SeriesMapPieData>();46.for (int i = 0; i < getMapPieDataList.Count; i++)47.{48.sbMapData.Append("{name:'" + getMapPieDataList[i].name + "',value:" + getMapPieDataList[i].value + "},");49.}50.//取得排名前十条的legendname数据51.List<SeriesMapPieData> legendName =52.getMapPieDataList.OrderByDescending(x => x.value).Take(10).ToList<SeriesMapPieData>();53.for (int i = 0; i < legendName.Count(); i++)54.{55.legend += "'" + legendName[i].name + "',";56.sbPieData.Append("{name:'" + legendName[i].name + "',value:" + legendName[i].value + "},");57.}58.}59.var getPieData = sbMapData.ToString().TrimEnd(',') +"]_" + sbPieData.ToString().TrimEnd(',') + "]_[" + legend.TrimEnd(',') + "]";60.context.Response.Write(getPieData.ToJson());61.}62.#endregion63. 64.context.Response.End();参考页面:
猿教程_-Entity教程-EntityFramework教程介绍
猿教程_-Entity教程-EntityFramework介绍
猿教程_-Entity教程-EntityFramework体系结构
猿教程_-Entity教程-设置EntityFramework开发环境
猿教程_-Entity教程-选择Entity Framework的开发方法
猿教程_-Entity教程-Linq to Entities 映射查询
猿教程_-Entity教程-DBEntityEntry Class
猿教程_-Entity教程-Entity Framework持久化
C#+JQuery+.Ashx+百度Echarts实现全国省市地图和饼状图动态数据图形报表的统计的更多相关文章
- echarts 柱状图和饼状图动态获取后台数据
运用echarts来实现图表 1.首先下载echarts包 http://echarts.baidu.com/echarts2/doc/example.html,在这里我下载的是 2.将echart ...
- echarts入门基础,画一个饼状图
注意:一定要自己引入echarts库 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- jquery echarts 饼状图
var myChart = echarts.init(document.getElementById('myChart')); option = { title : { text: '某站点用户访问来 ...
- Echarts 饼状图自定义颜色
今天给饼状图着色问题,找了好久 终于找到了 话不多说直接上代码 $.ajax({ url: "/HuanBaoYunTai/ajax/HuanBaoYunTaiService.ashx&qu ...
- ECharts 报表事件联动系列四:柱状图,折线图,饼状图实现联动
代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...
- Echarts生成饼状图、条形图以及线形图 JS封装
1.在我们开发程序中,经常会用到生成一些报表,比方说饼状图,条形图,折线图等.不多说了,直接上封装好的代码,如下Echarts.js所示 以下代码是封装在Echarts.js文件中 /** * Cre ...
- ECharts学习(2)--饼状图之南丁格尔图
1.上一篇中讲了如何绘制一个简单的柱状图,这次要画的是饼图,饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目.因为不在直角坐标系上,所 ...
- 一款基于jQuery饼状图比例分布数据报表
今天给大家带来一款基于jQuery饼状图比例分布数据报表.这款报表插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...
- jquery和highcharts折线图、柱形图、饼状图-模拟后台传參源代码
js代码: <script type="text/javascript"> $(function(){ showLine(); showColumn(); showPi ...
随机推荐
- Android安全开发之安全使用HTTPS
Android安全开发之安全使用HTTPS 1.HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验.主机名弱校验.webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易 ...
- 你必须知道的Javascript 系列
JavaScript是见过最多人说它“有趣”,“好玩”的一门语言.不仅仅是因为它的灵活性,包括它本身很多的特性,比如说原型链,作用域链都是非常好玩的东西.现在已经有很多的JavaScript设计模式, ...
- logistic回归
logistic回归 回归就是对已知公式的未知参数进行估计.比如已知公式是$y = a*x + b$,未知参数是a和b,利用多真实的(x,y)训练数据对a和b的取值去自动估计.估计的方法是在给定训练样 ...
- 我只是想开个饭店—— JavaIO模型的演变
Java的IO...真的是我所见过的高级语言中.最最复杂的... 看着这个图我也是醉了. 但是不知不觉间,java的IO已经更新到了NIO.2了,IO库早已经不止是这个样子了,那么这个过程中,它们经历 ...
- Docker:Ubuntu下的安装
Docker是什么 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托 管在 GitHub 上, 基于Go语言并遵从Apache2. ...
- Step by step 活动目录中添加一个子域
原创地址:http://www.cnblogs.com/jfzhu/p/4006545.html 转载请注明出处 前面介绍过如何创建一个域,下面再介绍一下如何在该父域中添加一个子域. 活动目录中的森林 ...
- Bootstrap~学习笔记索引
回到占占推荐博客索引 bootstrap已经用了有段时间了,感觉在使用上还是比较容易接受的,在开发人员用起来上,也还好,不用考虑它的兼容性,手机,平台,PC都可以有效的兼容. bootstrap官方a ...
- eclipse中的javac命令与java命令
一.eclipse的javac命令:当eclipse对.java(源文件)文件进行保存操作时(快捷键ctrl+s),会执行javac命令.见上图,Default output folder(默认输出文 ...
- PHP从PHP5.0到PHP7.1的性能全评测
本文是最初是来自国外的这篇:PHP Performance Evolution 2016, 感谢高可用架构公众号翻译成了中文版, 此处是转载的高可用架构翻译后的文章从PHP 5到PHP 7性能全评测( ...
- CRM/ERP 企业管理软件中常见的七种程序设计模式
管理软件中的常见代码设计模式,来自于业务上的需要,有不恰当的地方欢迎批评指正. 1 RE-TRY 重试模式 场景:在连接数据库服务器时,如果SQL Server数据库没有启动或正在启动,我们需要有一 ...