前一篇文章 "[Echarts可视化] 一.入门篇之简单绘制中国地图和贵州地区" 主要是通过Echarts可视化介绍入门知识、中国地图和贵州地区各省份的数据分析,其中贵州地图才是它的核心内容。
这篇文章主要结合PHP、MySQL、JQuery和Ajax从数据库中获取数据,动态的显示值,这是实现真正可视化的技术入,可以应用于实际的项目中。基础性文章,希望对您有所帮助,如果文章中存在不足之处,还请海涵~

参考文章:ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化
          echarts+php+mysql 绘图实例 - 谦一
          PHP+echarts读取地图数据

该篇文章代码下载地址:

一. 回顾Echarts绘制直方图

Echarts官网地址:http://echarts.baidu.com/index.html
注意:基础知识参考前一篇文章,这篇文章主要是代码为主,整个流程都是详细的。同时发现,准备写这篇文章的时候,“纯臻”大神也写了篇类似的,但依然有不同的地方可能对你有所帮助。
Echarts代码 test01.html

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>ECharts</title><!-- 引入 echarts.js --><script src="echarts.min.js"></script>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data:['数量']},xAxis: {data: ["贵阳市","遵义市","凯里市","六盘水市","都匀市","毕节市"]},yAxis: {},series: [{name: '数量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script>
</body>
</html>

运行结果如下图所示:

二. 创建数据库

创建数据库hcpmanage,再创建表guizhou,包括序号、地名、数量三个字段。
如下所示:

SQL语句对应的代码:

-- ----------------------------
-- Table structure for `guizhou`
-- ----------------------------
DROP TABLE IF EXISTS `guizhou`;
CREATE TABLE `guizhou` (`id` int(11) NOT NULL AUTO_INCREMENT,`place` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,`num` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;-- ----------------------------
-- Records of guizhou
-- ----------------------------
INSERT INTO `guizhou` VALUES ('1', '贵阳市', '5');
INSERT INTO `guizhou` VALUES ('2', '遵义市', '20');
INSERT INTO `guizhou` VALUES ('3', '凯里市', '36');
INSERT INTO `guizhou` VALUES ('4', '六盘水市', '10');
INSERT INTO `guizhou` VALUES ('5', '都匀市', '10');
INSERT INTO `guizhou` VALUES ('6', '毕节市', '20');

三. PHP连接数据库及Json传值

PHP连接数据库的核心代码大家非常熟悉了,下面这段代码简单包括了Json取值。
sql.php文件:

<?php//PHP连接数据库 header("content-type:text/json;charset=utf-8");//链接数据库$con = mysql_connect("localhost", "root", "123456"); if (!$con) { die('Could not connect database: ' . mysql_error()); } //选择数据库$db_selected = mysql_select_db("hcpmanage", $con); if (!$db_selected) { die ("Can\'t use yxz : " . mysql_error()); } //执行MySQL查询-设置UTF8格式mysql_query("SET NAMES utf8");     //查询学生信息$sql = "SELECT * FROM `guizhou` ";$result = mysql_query($sql,$con); //定义变量json存储值$data="";$array= array();class GuiZhou{public $id;public $place;public $num;}while ($row = mysql_fetch_row($result)){ list($id,$place,$num) = $row;   /*echo $id.' ';echo $place.' ';echo $num;echo '<br >';*/$gz = new GuiZhou();$gz->id = $id;$gz->place = $place;$gz->num = $num;//数组赋值$array[] = $gz;}$data = json_encode($array);echo $data;//{"id":"1","place":"\u8d35\u9633\u5e02","num":"5"}?>

核心代码,通过array数组获取Guizhou类中的值,该值是读取数据库并且赋值给实例gz的,再调用json_encode($array)进行格式转换。输出结果如下所示,也可以Json只获取两个值。

注意访问地址为:http://localhost:8080/20170224YXZ/sql.php,文件放到Apache的htdocs目录下。所有文件如下图所示:

四. Ajax动态实现Echarts可视化

test02.html代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>ECharts</title><!-- 引入 echarts.js --><script src="echarts.min.js"></script><script src="jquery-1.9.1.min.js"></script>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 初始化两个数组,盛装从数据库中获取到的数据var places=[], nums=[];function TestAjax(){$.ajax({type: "post",async: false,     //异步执行url: "sql.php",   //SQL数据库文件data: {},         //发送给数据库的数据dataType: "json", //json类型success: function(result) {if (result) {for (var i = 0; i < result.length; i++) {places.push(result[i].place);nums.push(result[i].num);console.log(result[i].place);console.log(result[i].num);}}}})return places, nums;}//执行异步请求TestAjax();// 指定图表的配置项和数据var option = {title: {text: 'ECharts+Ajax+MySQL+PHP'},tooltip: {show : true},legend: {data:['数量']},xAxis: [{//data: ["贵阳市","遵义市","凯里市","六盘水市","都匀市","毕节市"]type : 'category',data : places}],yAxis: {type : 'value'},series: [{name : "数量",type : "bar",data : nums}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script><marquee>Eastmount 璋 love 娜!!!</marquee>
</body>
</html>

运行结果如下图所示,这是动态调用的可视化结果。

其中Ajax核心代码为:

     var places=[], nums=[];function TestAjax(){$.ajax({type: "post",async: false,     //异步执行url: "sql.php",   //SQL数据库文件data: {},         //发送给数据库的数据dataType: "json", //json类型success: function(result) {if (result) {for (var i = 0; i < result.length; i++) {places.push(result[i].place);nums.push(result[i].num);console.log(result[i].place);console.log(result[i].num);}}}})return places, nums;}//执行异步请求TestAjax(); 

同时,浏览器中检查元素可以对Ajax的值进行测试输出,调用console.log函数。
如下图所示:

数据动态变化,数据库变了,可视化图也变化:

五. 难点及注意事项

初学的同学可能会遇到一下几个问题:

1.其中Echarts和JQuery需要导入的,即:
    <script src="echarts.min.js"></script>
    <script src="jquery-1.9.1.min.js"></script>

2.Echarts使用的方法请大家学习前一篇文章和官网文章,这里不再叙述。

3.PHP文件需要header("content-type:text/json;charset=utf-8");声明Json格式,同时Ajax也需要设置dataType: "json"。

4.声明的Ajax函数需要执行,对应代码中的TestAjax(),否则只是定义未执行。

5.如果Ajax报错 [object Object],如下图所示:

这需要Json格式一致,而我的错误是因为在PHP文件中增加了个注释导致无值,百度都无法解决,头都弄大了,所以写代码需要仔细。

6.最后动态数据是通过变量实现的,即ages替换以前的 [5, 20, 36, 10, 10, 20]。
            series : [ {
                   name : "num",
                   type : "bar",
                   data : ages
            }]

最后希望这篇文章对你有所帮助,尤其是对Echarts可视化感兴趣的同学,同样Java、C#、Python相关网站的原理一样,代码也会上传 。最近心情真的好低落,哎!有时间写日记总结下吧。
        稳坐珠江夜游船,翻转长隆水世界。
        笑谈粤广风流人,宁负天下不负卿

哎!总是心事重重,自己真的有太多的不足和需要成长的地方,以前总会知足,现在也会。哎!为人处世真需要一辈子去学习,且写且珍惜吧,传递正能量。
(By:Eastmount 2017-06-02 中午2点   http://blog.csdn.net/eastmount/  )

[Echarts可视化] 二.php和ajax连接数据库实现动态数据可视化相关推荐

  1. 安利一款数据分析工具,简单几步便可获得动态数据可视化图表

    ​关于数据可视化,想必小编再多说它的含义以及重要性了吧,我们在日常生活中就已经多多少少地接触过数据可视化大屏,或是看过色彩丰富的动态数据可视化图表,但是自己做出来往往没有人家的动态可视化图表炫酷- 那 ...

  2. echarts基于父盒子达成自适应布局(大数据可视化页面必须!)

    echarts基于父盒子达成自适应布局(大数据可视化页面必须!) 创建一个最外层容器 内部嵌套echarts容器 <div class="container"> < ...

  3. Python之分享常用的五款动态数据可视化工具

    一.Tableau 世界知名的 BI 工具,以超强的可视化能力著称.它已经成为商业 BI 界的 TOP 选手,很多大型公司像阿里.谷歌都在使用,能快速搭建数据系统. 可以通过设置页面动画,来制作动态可 ...

  4. 动态数据可视化图表制作,我只用这款软件

    相信很多数据人都会困扰一个问题就是,同为数据分析师,为什么我做的动态数据可视化图表又费时又费力还看起来不咋地,而别人做动图就是轻轻松松还高大上? 在这里,小编分享几个优秀动态数据可视化图表需要具备的几 ...

  5. ajax往CJJTable传值,jQuery+ajax怎么样实现动态数据分页

    这次给大家带来jQuery+ajax怎么样实现动态数据分页,用jQuery+ajax实现动态数据分页的注意事项有哪些,下面就是实战案例,一起来看一下. 用jQuery实现页码跳转式动态数据分页这个效果 ...

  6. 数据可视化模板_10分钟,做一份数据可视化分析报表

    做一份涵盖内容多.涉及数据量大的数据可视化分析报表要多久?10分钟够吗?如果奥威BI系列的分析软件会说话,恐怕要吐槽10分钟太多,5分钟足够.不说别的,论做智能数据可视化分析报表的效率,奥威BI系列软 ...

  7. 五分钟让你的数据动起来,动态数据可视化极简教程

    之前发了一条动态数据可视化的视频,有很多朋友来咨询怎么制作的,其实制作过程难度不大,上手很快,特地为大家整理了一篇制作教程,五分钟让你的数据动起来! 为什么做动态数据可视化? 动态数据可视化主要应用的 ...

  8. echarts 折线图 设置y轴最小刻度_数据可视化—Echarts图表应用

    <错误>郑愁予 我打江南走过, 那等在季节里的容颜如莲花的开落,东风不来,三月的柳絮不飞.你的心如小小寂寞的城,恰若青石的街道向晚.蛩音不响,三月的春帷不揭,你的心是小小的窗扉紧掩.我达达 ...

  9. echarts的词云图表类型有哪些_数据可视化之常见12种图表类型分析

    数据可视化有众多展现方式,不同的数据类型要选择适合的展现方法,今天友创云天就整理分析了几种常见的类型,给大家提供参考. 1.饼图 饼图是一个划分为几个扇形的圆形统计图表.每个扇形的弧长(以及圆心角和面 ...

最新文章

  1. 《C程序猿从校园到职场》勘误
  2. Android Studio之导入别人的module后config.gradle配置文件没有生效
  3. 盘点那些让程序员目瞪口呆的Bug都有什么?
  4. 5、mysql中的库操作
  5. text 两端对齐 小程序_小程序实现文字两端对齐
  6. codeforces679C Bear and Square Grid(dfs优化)
  7. GitHub Corners 挂角链接
  8. Linux块层技术全面剖析-v0.1
  9. 删库跑路如何预防?—— Oracle创建只读账号详细教程
  10. 【单目标优化求解】基于matlab多阶段动态扰动和动态惯性权重布谷鸟算法求解单目标优化问题【含Matlab源码 1656期】
  11. “阿里灵杰”问天引擎电商搜索算法赛 - 数据说明2022
  12. revit二次开发-创建组
  13. installshield 如何实现Oracle数据库脚本的执行功能
  14. 计算机原理非门,反相器和非门有什么区别
  15. 研究:信仰能帮助人坦然面对挫折
  16. 中国大学慕课第9周测验
  17. 记录解决Win10底部任务栏转圈圈问题的过程(Windows假死)
  18. 面试官问:除了ArrayList你还看过哪些List源码
  19. Selenium Web自动化测试——基于unittest框架的PO设计模式
  20. java项目日志打印总结

热门文章

  1. 查询DBA_HIST_ACTIVE_SESS_HISTORY缓慢
  2. context:component-scan报错
  3. vue骨架屏、时间选择器、轮播图。。你想要的这里全都有
  4. 服务器性能指标有哪些
  5. JQuery 的跨域方法 可跨任意网站
  6. MVC 中用JS跳转窗体Window.Location.href
  7. iPhone SDK发布
  8. python shell下载很慢_Python踩坑之旅其一杀不死的Shell子进程
  9. C语言简单题-找最大的字符串
  10. linux动态路由rip配置,配置 动态路由协议OSPF和RIPv2实现全网互通^