ECharts通过Ajax动态加载数据到图表

Echarts ajax动态加载json数据 后台php写的,给前台准备好json格式数据 public function actionGetOffline(){ $userid = Yii::$app->user->identity->user_id; $connection = Yii::$app->db; $command = $connection->createCommand("SELECT 阅读详情

参考官网:http://echarts.baidu.com/echarts2/doc/doc.html#引入ECharts2


要展示的图表像这样:



现在开始前后端代码展示。by the way,使用的开发框架为nutz,重点还是echarts数据。不要本末倒置。


1.从官网下载包


使用其中的dist文件夹和echarts.js,将dist文件夹和echarts.js放在工程的js目录下。


2.前端js代码echartsOneTest.jsp:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>统计</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <%@ include file="/WEB-INF/jsp/tag.jsp" %>
    <%@ include file="/WEB-INF/jsp/common_css.jsp" %>
    <%@ include file="/WEB-INF/jsp/common_js.jsp" %>
    <%@ include file="/WEB-INF/jsp/common_tool.jsp" %>
</head>
<body>
    <div>
        <button onclick="getJson()">查询</button>
    </div>
    <div id="main" style="height:400px;"></div>
    <%--echarts.js的路径可以随便放,只要这里能获取到就行了--%>
    <script src="../../static/js/echarts.js"></script>
    <script type="text/javascript">
        var myChart;//定义一个全局的图表变量,供后面动态加载时使用
        require.config({
            paths: {
                echarts: '../../static/js/dist'   //将dist文件夹和echarts.js放在同一目录下
            }
        });
        require(
            [
                'echarts',
                'echarts/chart/line',   // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表
                'echarts/chart/bar'
            ],
            function (ec) {
                myChart = ec.init(document.getElementById('main'));
                //下面的option可以为空{},ajax动态添加数据时会加上相应的属性
                //var option = {};
                var option = {
                    legend: {
                        data:['蒸发量','降水量']
                    },
                    xAxis : {
                        data : []
                    },
                    yAxis : {},
                    series : [
                        {
                            name:'蒸发量',
                            type:'bar',
                            data:[]
                        },
                        {
                            name:'降水量',
                            type:'bar',
                            data:[]
                        }
                    ]

                };
                myChart.setOption(option);
            }
        );

        function getJson() {
            //获取数据时显示加载状态图
            myChart.showLoading();
            var months=[];//用来盛放X轴坐标值:月份
            var evapCapacitys=[];//用来盛放Y坐标值:蒸发量
            var precipitations=[];//用来盛放Y坐标值:降雨量

            $.ajax({
                type : "post",
                async : true, //异步请求
                url : "${ctx}/echarts/getJson",
                data : {},
                dataType : "json",
                success : function(result) {
                    if (result.status) {
                        var list = result.list;
                        for(var i=0;i<list.length;i++){
                            months.push(list[i].month);    //遍历月份并填入数组
                        }
                        for(var i=0;i<list.length;i++){
                            evapCapacitys.push(list[i].evapCapacity);    //遍历蒸发量并填入数组
                        }
                        for(var i=0;i<list.length;i++){
                            precipitations.push(list[i].precipitation);    //遍历降水量并填入数组
                        }
                        myChart.hideLoading();    //隐藏加载动画
                        myChart.setOption({        //加载数据图表
                            tooltip : {
                                trigger: 'axis'
                            },
                            legend: {
                                data:['蒸发量','降水量']
                            },
                            toolbox: {
                                show : true,
                                feature : {
                                    mark : {show: true},
                                    dataView : {show: true, readOnly: false},
                                    magicType : {show: true, type: ['line', 'bar']},
                                    restore : {show: true},
                                    saveAsImage : {show: true}
                                }
                            },
                            calculable : true,
                            xAxis: {
                                data: months
                            },
                            yAxis:{},//注意一定不能丢了这个,不然图表Y轴不显示
                            series: [{
                                // 根据名字对应到相应的系列,并且要注明type
                                name: '蒸发量',
                                type:'bar',
                                data: evapCapacitys
                            },{
                                // 根据名字对应到相应的系列,并且要注明type
                                name: '降水量',
                                type:'bar',
                                data: precipitations
                            }]
                        });

                    }

                },
                error : function(errorMsg) {
                    //请求失败时执行该函数
                    alert("图表请求数据失败!");
                    myChart.hideLoading();
                }
            });
        }
    </script>
</body>
</html>


3.后端java代码 ,

EChartsModule.java

package com.kp.module;

import com.kp.entity.EchartsEntity;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by admin on 2017/12/22.
 */
@IocBean
@At("/echarts")
public class EChartsModule {

    @At("/index")
    @Ok("jsp:jsp.echartsOneTest")
    public void index() {

    }

    @At("/getJson")
    @Ok("json")
    public NutMap getJson(){
        NutMap nutMap = new NutMap();
        List<EchartsEntity> list =  new ArrayList<>();
        list.add(new EchartsEntity("1月份",2.0f, 2.6f));
        list.add(new EchartsEntity("2月份",4.9f, 5.9f));
        list.add(new EchartsEntity("3月份",7.0f, 9.0f));
        list.add(new EchartsEntity("4月份",23.2f, 26.4f));


        nutMap.put("list", list);
        nutMap.put("status", "ok");
        return nutMap;
    }

}

EchartsEntity.java

package com.kp.entity;

/**
 * Created by admin on 2017/12/22.
 */
public class EchartsEntity {
    private String month;
    private Float evapCapacity;
    private Float precipitation;

    public EchartsEntity(String month, Float evapCapacity,  Float precipitation) {
        this.month = month;
        this.evapCapacity = evapCapacity;
        this.precipitation = precipitation;
    }

    public String getMonth() {
        return month;
    }

    public void setMonth(String month) {
        this.month = month;
    }

    public Float getEvapCapacity() {
        return evapCapacity;
    }

    public void setEvapCapacity(Float evapCapacity) {
        this.evapCapacity = evapCapacity;
    }

    public Float getPrecipitation() {
        return precipitation;
    }

    public void setPrecipitation(Float precipitation) {
        this.precipitation = precipitation;
    }
}


《模板》Echarts通过Ajax实现动态数据加载 <!-- 问题:Echarts通过Ajax实现动态数据加载 解决方案:通过将数据放在数组里面,加载到Echarts表上面 --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Echarts通过Ajax实现动态数据加载</title> <script src="https://cdn.bootcss.com/jquer. 阅读详情

相关推荐

H5与ECharts实战:打造响应式动态数据可视化图表

本文详细介绍了如何使用H5与ECharts组合打造响应式动态数据可视化图表。通过实战案例展示了ECharts的强大功能,包括多种图表类型、响应式设计、动态数据加载和移动端适配技巧,帮助开发者快速实现复杂的数据可视化需求。

weixin_29015051的博客 395

通过ajax异步交互实现echarts绘图,并附带疫情数据可视化项目。

目录前言1.引入库2.flask链接MYSQL读取数据3.HTML页面echarts绘图4.结果实现总结:ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。ECharts 遵循 Apache-2.0 开源协议,免费商用。ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。AJAX = Asynchronous JavaScript and XML(异步的 JavaS

dyjffgkvfg的博客 4278

ECharts通过ajax实现动态加载数据

搞了好久,看着简单,碰到各种麻烦,记录一下,以备后用。ps:还是志哥帮忙搞定的。 详细演示如下过程:1.客户端通过ajax发送请求;2.服务器端Servlet接收请求;3.生成数据并返回给客户端;4.客户端接收数据后显示。 ajax如下: ...

weixin_44038677的博客 1740

echarts使用ajax接收数据并展示

首先找一个echarts实例 然后自己搭建环境运行 var lineChart = echarts.init(document.getElementById('event_pandect'),'macarons');(添加) option = { title : { text: '某站点用户访问来源', subtext: '纯属虚构', ...

欧阳小白闯天涯 1万+

echarts动态加载数据,显示柱状图,饼图图表

第一次写博客,有点小激动。公司正在开发的web版固定资产管理软件,需要做报表,需要直观的显示一些领导感兴趣的数据。就想到百度的echarts啦,关于echarts,请移步echarts首页

made_differ的博客 1万+

三维重建之条纹投影结构光(一)

该系列为条纹投影结构光学习笔记,一共分为四篇。第一篇记录文献阅读的笔记,对重要知识点进行摘录介绍。 本篇以理论知识推导为主,主要从以下三个方面进行介绍,首先介绍条纹投影的三角测量原理;然后介绍相位主值的求解和相位展开;最后介绍相位和高度的模型,即相高模型。本篇博文不涉及具体的代码实现。 条纹投影结构光测量原理 ...

beyond951的博客 3万+

django之 echarts数据可视化3:使用ajax传递数据

通过ajax请求来刷新带echarts图表的页面。

水w的博客 3598

常微分方程 (ODE) 和 随机微分方程 (SDE)

常微分方程(Ordinary Differential Equations, ODE)和随机微分方程(Stochastic Differential Equations, SDE)是数学中描述系统动态行为的重要工具。它们有一些相似之处,但在处理随机性方面存在显著差异。

weixin_39699362的博客 4384

使用echarts+ajax从数据库动态获取数据展示到前台页面

echarts+ajax动态获取数据库数据1、点击操作按钮实现次数+1前端代码实现后台代码实现2、echarts从数据库动态获取数据后台代码实现前端代码实现 这是我以前用最基础的方法做出来的,前端框架我是使用的Layui。 这是实现效果图展示: 通过员工考勤管理,对每个员工进行考勤记录,比如迟到一次,通过点击迟到按钮实现该员工迟到次数+1,且考核数据图表信息也会随着数据库数据改变而更新。 1、点击操作按钮实现次数+1 通过每日考核页面可以得知,通过点击右侧对应的操作按钮,实现各自的记录次数+1, 这是怎

shi_AXing_a的博客 4967

Quartus安装Altera USB-Blaster安装驱动程序出现问题(代码39)的解决办法

Quartus安装Altera USB-Blaster安装驱动程序出现问题(代码39)的解决办法

MCU_HOT的博客 1万+

AUTOSAR/汽车行业

AUTOSAR架构及汽车产业链相关介绍

m0_54254513的博客 1万+

echarts

&lt;div id="main" style="width: 600px;height:400px;"&gt;&lt;/div&gt; &lt;script src="~/lib/echarts/dist/echarts.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt;

weixin_34283445的博客 568

Python入门基础教程(非常详细)

Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python类库(模块)极其丰富,这使得Python几乎无所不能,不管是传统的Web开发、PC软件开发、Linux运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python都能胜任。这套Python基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋友出于兴趣学习Python,请引导他阅读本教程的前半部分,这是基础,可以降低学习成本;...

Yuki1127918的博客 34万+

Echarts 图表数据通过 Ajax 动态加载

一、介绍   Echarts 配合使用 Ajax 进行数据的动态加载,主要解决了加载一次页面只能加载一次图表的问题,其次在动态加载时衔接合理。 二、HTML代码 &amp;lt;head&amp;gt; &amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js&am

写Bug的小白的博客 1058

华为OD机试双机位C卷-敌情监控 (Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【敌情监控】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 敌情监控。

qq_45776114的博客 938

【教程4>第1章>第11节】使用MATLAB快速产生批量verilog语句加快FPGA开发

...........如果手动写,那么就非常麻烦,这个时候,我们借助matlab,则可以快速生成上述类型的verilog程序,我们编写如下的MATLAB语句。\n");\n");end。

FPGA/MATLAB学习教程/源码/项目合作开发 1241

Ajax mysql echarts_Echarts图表如何实现ajax实现动态数据加载

现在已经深夜12点了,拖着疲惫身体还是写完这篇简书吧,今天用了Echarts实现动态加载数据,干货还是要分享给大家的自己确实有点low了,破东西搞了一个小时,之前也一直在用这个,但是都是给的死数据,这次哥们后台需要图标统计,数据都是实时更新的,叫小搞了一下首先把echarts的插件引入,根据官方文档都有现成的demo,话不多说,直接进入主题刚开始天真的以为,只要把数据从ajax中获取出来,组成数组...

weixin_42493313的博客 412

[AI] 本地部署 Dify 遇到 Internal Error?一文彻底解决密码不一致引发的问题

摘要:Dify本地部署常见InternalError错误主要由配置残留或密码不一致导致,特别是修改.env文件后未同步清除数据库记录。彻底解决方案包括:1)清理Docker数据;2)删除旧配置和数据库;3)还原源代码;4)重建.env文件;5)重新初始化部署。关键提醒:记录部署路径、备份.env文件并妥善保存密码。该错误本质是配置冲突,最有效方法是完全重置而非调试,保持清晰的部署管理可避免多数InternalError问题。(149字)

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 435

echarts图表数据动态加载

动态加载数据也就多了一个请求,先把自己要的图表设置好,数据可以先写死数据,也可不写 然后请求接口在success中设置对应的数组值 $.ajax({ url: '', type: 'post', dataType:'json', contentType: 'application/json', async:true, data: JSON.stringif...

hello world 769

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

在Ruoyi中采用Ajax动态生成Echarts图表实践

文将以Ruoyi框架为例,深入讲解基于Ajax技术,实现数据的动态接入,让读者了解如何进行数据的动态接入代码实战开发

夜郎King的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ECharts使用Ajax动态载入图表数据

jsp代码:(根据官方demo及自己需求,适当修改原始参数,需动态添加的原始测试数据可以不删,可以覆盖) &amp;amp;lt;%@ page language=&amp;quot;java&amp;quot; contentType=&amp;quot;text/html; charset=UTF-8&amp;quot; pageEncoding=&amp;quot;UTF-8&amp;quot;%&amp;amp;gt;

白鸿源的博客 1376

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

如何在ajax中动态填充echarts中的内容

老规矩,先上界面看看。 导入echar和jquery的js,导入方法看官网文档->教程 ,如下图所示。Jquery的js百度即可 下面是我的实现代码,目的是为了分享一下自己的想法,仅供参考。如由更好的实现方法,欢迎评论! 写一个div即可 <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --> <div id="ba...

Coding&Sharing 317

Echarts图表的动态数据显示

ECharts图表的动态显示 饼图

firstbird的博客 2714

echarts在.Net中使用实例(二) 使用ajax动态加载数据

通过上一篇文章可以知道和echarts参考手册可知,series字段就是用来存储我们显示的数据,所以我们只需要用ajax来获取series的值就可以. option 名称描述 {color}backgroundColor 全图默认背景,(详见backgroundColor),支持rgba,默认为无,透明 {Array} color 数值系列的颜色列表,(详见colo...

weixin_33744141的博客 297

ECharts通过Ajax异步加载数据

首先在HTML中引入 jQuery.js 和 ECharts.js <script src="./js/jquery-1.11.3.js"></script> <script src="./js/echarts.common.min.js"></script> <script src="./js/myChart.js">&l...

wchqzhy99的专栏 786

Echarts使用及动态加载图表数据

Echarts使用及动态加载图表数据 折线图X轴数据动态加载 ps:项目中刚好要做用到,看了这篇学会怎么用,感谢 原...

NT_roc的博客 1177
上一篇: java通过url调用远程接口返回json数据,有用户名和密码验证
下一篇: 使用SpringMVC开发RestFul风格接口的java-web项目,tomcat部署并客户端访问
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值