ECharts获取json数据动态展示(柱状图、折线统计图)

本文所给源码均基于官方实例源码下载后制作,本文源码所有js全部引用在线版,你也可以将这些js下载下来后自行引用。(ECharts在线示例:http://echarts.baidu.com/examples/)

一共两个文件,一个html,一个存放json数据的txt文件。第一次接触学习,有不少冗余数据凑合着看吧!

ECharts的强大之处我怕是只能学得一点皮毛,有兴趣的可以去官网看看百度出品,另外百度出品的一个富文本编辑器UEditor也不错,传送地址:https://ueditor.baidu.com/website/onlinedemo.html

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
  <script type="text/javascript" src="/js/jquery-1.8.2.js"></script>
   <script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
       <br>
	   <?php 
	   

	   ?>
	55
	   <div id="traceProvinceOrder" style="width:100%; height:400px;"></div>
	   
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
       
	   <script type="text/javascript">
function loadOneColumn() {


? ? var myChart = echarts.init(document.getElementById('traceProvinceOrder'));
? ? // 显示标题,图例和空的坐标轴
? ? myChart.setOption({
? ? ? ? title: {
? ? ? ? ? ? text: '数据对比——异步加载'
? ? ? ? },
? ? ? ? tooltip: {},
	/*	tooltip: {//鼠标悬浮显示数据定位
        trigger: 'axis',
        axisPointer: {
            type: 'cross',
            crossStyle: {
                color: '#999'
            }
        }
    },*/
		toolbox: {/*右上角 统计图像切换&下载*/
        feature: {
            dataView: {show: true, readOnly: false},
            magicType: {show: true, type: ['line', 'bar']},
            restore: {show: true},
            saveAsImage: {show: true}
        }
    },
? ? ? ? legend: {
? ? ? ? ? ? data: ['发布排行-悬浮提示','数据2']/*上方标题*/
? ? ? ? },
? ? ? ? xAxis: {
? ? ? ? ? ? data: []
? ? ? ? },
? ? ? ? yAxis: [
	{
            type: 'value',
            name: 'RMB',
            axisLabel: {
                formatter: '¥{value} '
            }
        },{
? ? ? ? ? ? splitLine: { show: false },//去除网格线
? ? ? ? ? ? name: ''
? ? ? ? }],
? ? ? ? series: [{
? ? ? ? ? ? barWidth: "30px",
? ? ? ? ? ? name: '发布排行-悬浮提示',
? ? ? ? ? ? type: 'bar',
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? ? ? label: {
? ? ? ? ? ? ? ? ? ? ? ? show: true,
? ? ? ? ? ? ? ? ? ? ? ? position: 'top',
? ? ? ? ? ? ? ? ? ? ? ? textStyle: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? color: '#333'
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? },
		/*	type: 'line',
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? ? ? label: {
? ? ? ? ? ? ? ? ? ? ? ? show: true,
? ? ? ? ? ? ? ? ? ? ? ? position: 'top',
? ? ? ? ? ? ? ? ? ? ? ? textStyle: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? color: '#05CE3E'
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? },*/
? ? ? ? ? ? data: []
? ? ? ? },{
? ? ? ? ? ? barWidth: "30px",
? ? ? ? ? ? name: '数据2',
? ? ? ? ? ? type: 'bar',
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? ? ? label: {
? ? ? ? ? ? ? ? ? ? ? ? show: true,
? ? ? ? ? ? ? ? ? ? ? ? position: 'top',
? ? ? ? ? ? ? ? ? ? ? ? textStyle: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? color: '#05CE3E'
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? },
? ? ? ? ? ? data: []
? ? ? ? }]
? ? });


? ? myChart.showLoading(); ? ?//数据加载完之前先显示一段简单的loading动画


? ? var names = []; ? ?//类别数组(实际用来盛放X轴坐标值)
? ? var nums = []; ? ?//销量数组(实际用来盛放Y坐标值)
	var json_data_x = new Array();
	var json_data_y = new Array();/*数据*/
var json_name = [];

? ? $.ajax({
? ? ? ? type: 'get',
? ? ? ? url: './index_fbph.txt',//请求数据的地址 
? ? ? ? dataType: "json", ? ? ? ?//返回数据形式为json
		result : {},
? ? ? ? success: function (result) {
? ? ? ? ? ? //请求成功时执行该函数内容,result即为服务器返回的json对象
? ? ? ? ?

   
          $.each(result,function (i,item) { //循环
 
			  json_name.push(item.name);/* xx数据   xx数据1  xx数据2*/
			//  alert(i);
			json_data_x[i]=new Array();//再次定义
			json_data_y[i]=new Array();//
              $.each(item['list'],function (j,item2) {//循环
  
				  json_data_x[i][j]=item2["department"];
				//  alert(i+' - '+item2["department"]+' - '+item2["num"]+'-- json->'+json_data_x[i][j]+' j='+j);
				  json_data_y[i][j]=item2["num"];

              });
         });


? ? ? ? ? ? myChart.hideLoading(); ? ?//隐藏加载动画
? ? ? ? ? ? myChart.setOption({ ? ? ? ?//加载数据图表
? ? ? ? ? ? ? ? xAxis: {

					data: json_data_x[0]
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? series: [{
? ? ? ? ? ? ? ? ? ? // 根据名字对应到相应的系列

					name: json_name[0],
					 type: 'bar',/*line   bar*/
					data: json_data_y[0]
? ? ? ? ? ? ? ? },{

					name: json_name[1],
					 type: 'bar',/*line   bar*/
					data: json_data_y[1]
? ? ? ? ? ? ? ? },{
					name: json_name[2],
					 type: 'bar',/*line   bar*/
					data: json_data_y[2]
? ? ? ? ? ? ? ? },{

					name: json_name[3],
					 type: 'bar',/*line   bar*/
					data: json_data_y[3]
? ? ? ? ? ? ? ? }]
? ? ? ? ? ? });
? ? ? ? },
? ? ? ? error: function (errorMsg) {
? ? ? ? ? ? //请求失败时执行该函数
? ? ? ? ? ? alert("图表请求数据失败!");
? ? ? ? ? ? myChart.hideLoading();
? ? ? ? }
? ? });
};
//loadOneColumn();
setTimeout(loadOneColumn(),1000);
       </script>
   </body>
</html>

index_fbph.txt

[{
   "name":"发布排行-悬浮提示",

    "list": [
        {
            "department": "和平区",
            "num":480
        },
        {
            "department": "河西区",
            "num":880
        },
        {
            "department": "河东区",
            "num":466
        },
        {
            "department": "河北区",
            "num":990
        },
        {
            "department": "南开区",
            "num":450
        },
        {
            "department": "南er区",
            "num":675
        }
    ]
},
{
   "name":"发布排行-悬浮提示2",

    "list": [
        {
            "department": "平区",
            "num":48
        },
        {
            "department": "西区",
            "num":88
        },
        {
            "department": "东区",
            "num":46
        },
        {
            "department": "北区",
            "num":99
        },
        {
            "department": "开区",
            "num":45
        },
        {
            "department": "南er区",
            "num":375
        }
    ]
},
{
   "name":"发布排行-悬浮提示3",

    "list": [
        {
            "department": "平区",
            "num":48
        },
        {
            "department": "西区",
            "num":88
        },
        {
            "department": "东区",
            "num":46
        },
        {
            "department": "北区",
            "num":99
        },
        {
            "department": "开区",
            "num":45
        },
        {
            "department": "南er区",
            "num":375
        }
    ]
},
{
   "name":"发布排行-悬浮提示4",

    "list": [
        {
            "department": "平区",
            "num":48
        },
        {
            "department": "西区",
            "num":88
        },
        {
            "department": "东区",
            "num":46
        },
        {
            "department": "北区",
            "num":99
        },
        {
            "department": "开区",
            "num":45
        },
        {
            "department": "南er区",
            "num":375
        }
    ]
},
{
   "name":"发布排行-悬浮提示5",

    "list": [
        {
            "department": "平区",
            "num":48
        },
        {
            "department": "西区",
            "num":880
        },
        {
            "department": "东区",
            "num":46
        },
        {
            "department": "北区",
            "num":99
        },
        {
            "department": "开区",
            "num":45
        },
        {
            "department": "南er区",
            "num":375
        }
    ]
},
{
   "name":"发布排行-悬浮提示6",

    "list": [
        {
            "department": "平区",
            "num":48
        },
        {
            "department": "西区",
            "num":88
        },
        {
            "department": "东区",
            "num":46
        },
        {
            "department": "北区",
            "num":99
        },
        {
            "department": "开区",
            "num":45
        },
        {
            "department": "南er区",
            "num":975
        }
    ]
}]

本实例可在柱状图、折线图、默认统计图来回切换,支持以图片格式下载保存。更多更丰富的功能自行研究~

 

json格式验证\在线编辑器:http://www.bejson.com/jsoneditoronline/

 

本教程来源参考学习地址:https://blog.csdn.net/u012767607/article/details/76584999

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/echarts获取json数据动态展示/

赞赏

微信赞赏支付宝赞赏

发表评论