/** 转载请保留博客园原地址以及版权声明,请勿恶意修改,本博客中的内容均属于技术交流,请勿用于商业用途,谢谢配合

*  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn

* 【后台】http://xiaoshuo.qqsiot.cn/manager 【前台】http://y6.qqsiot.cn

*  管理员账号:admin  渠道商账号:channel  代理商账号:agent  演示密码:123456

**/

使用百度echarts插件来制作地图分布统计图,更加方便分析和理解用户行为,对症下药才能起到最好的疗效,哈哈哈,效果怎么样,看看就知道了
先展示出来一个地图,上边显示所有省份的全部情况,然后点击某个省份的时候,使用post请求后台,获取对应省份的城市分别的人数,然后生成城市分布柱状图,后台程序比较简单,就是获取城市和人数,不得不说echarts是一个非常好用的工具,我记得15年大四的时候在一家公司实训,做过一个类似的统计,当时有一些朋友在使用flash来写,后来接触了echats之后,感觉flash就是个垃圾,为百度顶一个,具体效果也可以到演示站中看,下期讲一下条形统计图
<script src="/Content/Share/js/echarts-all.js"></script>
<script src="/Content/Share/novel.js"></script>
<div id="content-header">
<div id="breadcrumb">
<a href="#" title="Go to Home" class="tip-bottom">
<i class="icon-home"></i> Home
</a>
<a href="#" class="current">用户分布</a>
</div>
</div>
<div class="container-fluid data-stat">
<div class="row-fluid">
<a href="/Manager/AgentDatas/Index" class="btn">订单统计</a><!--
--><a href="/Manager/AgentDatas/User" class="btn">用户统计</a><!--
--><a href="/Manager/AgentDatas/Novel" class="btn">小说统计</a><!--
--><a href="/Manager/DataCharts/OrderDatas" class="btn">订单趋势</a><!--
--><a href="/Manager/DataCharts/UserDatas" class="btn">用户趋势</a><!--
--><a href="/Manager/DataCharts/UserAreaDatas" class="btn btn-primary">用户分布</a>
</div>
</div>
<br />
<div id="userMap" style="height: 400px; width: 94%;"></div>
<div id="two" style="height:400px; width:94%;"></div>
<script type="text/javascript">
var acid = '@ViewBag.acid';
// 基于准备好的dom,初始化echarts实例
var userMapChart = echarts.init(document.getElementById('userMap'));
var myChart2 = echarts.init(document.getElementById('two'));
userMapChart.showLoading({
text: '正在努力的读取数据中...' //loading话术
});
userMapChart.on('click', function (param) {
dealCityPost(param.name);
});
function dealCityPost(name) {
$.post('/Manager/DataCharts/UserCityMapJson', { acid: acid, name: name }, function (d) {
//console.log(JSON.stringify(d));
if (d.code == 0) {
dealChart2(name, d.data);
}
});
}
$.post('/Manager/DataCharts/UserProvinceMapJson', { acid: acid }, function(d) {
//console.log(JSON.stringify(d));
if (d.code == 0) {
dealChart(d.data);
//默认显示浙江省
dealCityPost('浙江');
}
});
var provinces = [
'北京',
'天津',
'上海',
'重庆',
'河北',
'河南',
'云南',
'辽宁',
'黑龙江',
'湖南',
'安徽',
'山东',
'新疆',
'江苏',
'浙江',
'江西',
'湖北',
'广西',
'甘肃',
'山西',
'内蒙古',
'陕西',
'吉林',
'福建',
'贵州',
'广东',
'青海',
'西藏',
'四川',
'宁夏',
'海南',
'台湾',
'香港',
'澳门'
];
function getMaxValue(data) {
var max = 0;
for (var i in data) {
if (data[i].value > max && $.inArray(data[i].name, provinces) != -1) {
max = data[i].value;
}
}
return max;
}
function dealChart(datas) {
userMapChart.hideLoading();
var option = {
title: {
text: '用户省份分布统计',
subtext: '',
x: 'center'
},
tooltip: {
trigger: 'item'
},
dataRange: {
min: 0,
max: getMaxValue(datas),
x: 'right',
y: 'bottom',
text: ['高', '低'], // 文本,默认为数值文本
calculable: true,
color: ['#BD0707','#FFD2D2']
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: false,
itemStyle: {
normal: { label: { show: true } },
emphasis: { label: { show: true } }
},
data: datas
}
]
};
userMapChart.setOption(option);
}
function dealChart2(name, datas) {
var citys = [];
var nums = [];
for (var i in datas) {
var data = datas[i];
citys[i] = data.name;
nums[i] = data.value;
}
myChart2.showLoading({
text: '正在努力的读取数据中...', //loading话术
});
myChart2.hideLoading();
var option2 = {
title: {
text: name+'省各城市用户人数',
x: 'center'
},
legend: { // 图例配置
padding: 5, // 图例内边距,单位px,默认上下左右内边距为5
itemGap: 10, // Legend各个item之间的间隔,横向布局时为水平间隔,纵向布局时为纵向间隔
data: [name+'省'],
x: 'center',
y: 'bottom'
},
tooltip: { // 气泡提示配置
trigger: 'item', // 触发类型,默认数据触发,可选为:'axis'
},
xAxis: [ // 直角坐标系中横轴数组
{
type: 'category', // 坐标轴类型,横轴默认为类目轴,数值轴则参考yAxis说明
data: citys
}
],
yAxis: [ // 直角坐标系中纵轴数组
{
type: 'value', // 坐标轴类型,纵轴默认为数值轴,类目轴则参考xAxis说明
boundaryGap: [0.1, 0.1], // 坐标轴两端空白策略,数组内数值代表百分比
splitNumber: 6 // 数值轴用,分割段数,默认为5
}
],
series: [
{
name: name+'省', // 系列名称
type: 'bar', // 图表类型,折线图line、散点图scatter、柱状图bar、饼图pie、雷达图radar
itemStyle: {
normal: { label: { show: true } }
},
data: nums
}
]
};
myChart2.clear();
myChart2.setOption(option2);
}
$(function () {
$('#userMapMenu').addClass("active");
$('#dataMenu > a').trigger('click');
});
</script>

微信小说分销系统设计之使用百度Echarts地图统计功能统计微信粉丝地域分布情况的更多相关文章

  1. 类似818tu.co微信小说分销系统设计之多公众号网页授权自动登录源码

    /** 转载请保留原地址以及版权声明,请勿恶意修改 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn * [后台]http://xiaoshuo. ...

  2. 类似818tu.c微信小说分销系统设计之多公众号网页授权自动登录源码分享

    /** 转载请保留原地址以及版权声明,请勿恶意修改 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn * [后台]http://xiaoshuo. ...

  3. 类818tu.c微信小说分销系统设计之定时模板消息源码

    近期将出个系列讲解开发过程,同时作为此系统的开发记录吧,万能的博客园,本边讲解如何发送模板消息,并且能够定时发送,下一篇讲解如何处理多个公众号的网页授权登录问题 [后台]http://xiaoshuo ...

  4. 百度echarts地图扩展动态加载geoCoord

    var data={}; for(var i=0;i<result.length;i++){ data[(""+result[i].name+"")]=e ...

  5. 工作中遇到的有关echarts地图和百度地图的问题

    工作中遇到的有关echarts地图和百度地图的问题 *** 前言:在做项目中需要制作一个场景是左边是柱状图,右边是地图,地图上悬浮一个按钮可以切换echarts地图和百度地图.*** 功能: 在点击左 ...

  6. echarts 地图 动态 展示 结合css+js

    echarts地图展示功能非常强大,官网上静态展示的样例非常多了,动态的资料少.研究了下.我眼下实现的通过ajax从server获取数据动态展示地图. 另外,我们有时候希望在地图之上做些自己定义的东西 ...

  7. WPF仿百度Echarts人口迁移图

    GitHub地址:https://github.com/ptddqr/wpf-echarts-map/tree/master 关于大名鼎鼎的百度Echarts我就不多说了 不了解的朋友直接看官方的例子 ...

  8. C#+JQuery+.Ashx+百度Echarts实现全国省市地图和饼状图动态数据图形报表的统计

    在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈现的需求,经过几轮挑选,最终选择了百度的echarts作为报表基础类库.echarts功能强大,界 ...

  9. 完整版ajax+百度echarts实现统计图表demo并随着窗口大小改变而自适应

    1.前言 百度Echarts会常用到我们的项目中做统计,api很详细,demo也非常之多,我们常用的是应有尽有了,做一些小项目的时候,百度echarts的demo已足够用了.今天呢.主要是跟小白讲一下 ...

随机推荐

  1. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

  2. LeetCode 049 Anagrams

    题目要求:Anagrams Given an array of strings, return all groups of strings that are anagrams. Note: All i ...

  3. OpenCV-Python图像转换为PyQt图像的变形及花屏无法正常显示问题研究

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<PyQt转换显示Python-OpenCV图像实现图形化界面的视频播放>介绍了实现在OpenCV和PyQt之间转换并传递图像实现在P ...

  4. 「Elasticsearch」SpringBoot快速集成ES

    Elastic Search 的底层是开源库 Lucene.但是Lucene的使用门槛比较高,必须自己写代码去调用它的接口.而Elastic Search的出现正是为了解决了这个问题,它是 Lucen ...

  5. hitorMiss、hitAndMiss以及MORPH_HITMISS?

    hitorMiss.hitAndMiss在图像处理中都是同一个概念,即图像的形态学变换中的击中击不中变换,hit表示击中,miss表示击不中.MORPH_HITMISS是OpenCV调用时该变换的op ...

  6. vulnstack靶机实战01

    前言 vulnstack是红日安全的一个实战环境,地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/最近在学习内网渗透方面的相关知识,通过对靶机的 ...

  7. NET core 添加了新的nuget包,部署出现Could not load file or assembly

    这个坑,今天整了一天,我添加了Microsoft.AspNetCore.Mvc.Versioning包,结果发布到服务器,我复制了dll过去出现了一直找不到加载不成功的问题 Startup.Confi ...

  8. webstorm2020最新安装破解教程方法永久激活码

    现在webstorm的版本已经更新到2020.3了,还没有升级的小伙伴们赶紧升级啦,本文教大家如何安装webstorm2020.3版本并且破解,此方法亲测百分百可以永久激活webstorm2020.3 ...

  9. 「TJOI / HEOI2016」求和 的一个优秀线性做法

    我们把\(S(i, j)j!\)看成是把\(i\)个球每次选择一些球(不能为空)扔掉,选\(j\)次后把所有球都扔掉的情况数(顺序有关).因此\(S(i, j)j! = i![x^i](e^x - 1 ...

  10. 【学习笔记】使用 bitset 求解较高维偏序问题

    求解五维偏序 给定 \(n(\le 3\times 10^4)\) 个五元组,对于每个五元组 \((a_i, b_i, c_i, d_i, e_i)\),求存在多少个 \(1\le j\le n\) ...