通过ajax异步交互实现echarts绘图

这篇具有很好参考价值的文章主要介绍了通过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(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行

Flask通常被称为 微框架。 它旨在保持应用程序的核心简单且可扩展。 Flask没有用于数据库处理的内置抽象层,也没有形成验证支持。 相反,Flask支持扩展以将这些功能添加到应用程序中。部分流行的Flask扩展将在本教程后续章节中讨论。

1.引入库

from flask import Flask,render_template,url_for
from flask_cors import CORS
from pip import main
import pymysql
import json

2.flask链接MYSQL读取数据

app=Flask(__name__)
CORS(app,supports_credentials=True)
@app.route("/")
def hello():
    return render_template('data.html')
@app.route("/test",methods=('GET','POST'))
def test():
    conn=pymysql.connect(host='127.0.0.1',user='root',password='123456',db='sys')
    cur=conn.cursor()
    sql='SELECT t.id,t.scarly ,t.score from test1 t'
    cur.execute(sql)
    u=cur.fetchall()
    print(u)
    jsonData={}
    x=[]
    y=[]
    z=[]
    for data in u :
        x.append(data[0])
        y.append(data[1])
        z.append(data[2])
 
    jsonData['x']=x
    jsonData['y']=y
    jsonData['z']=z
    #json.dumps()用于将dict类型的数据转换成str,因为如果直接将dict类型的数据写入json会报错,因此将数据写入时需要用到此函数
    j=json.dumps(jsonData)
 
    cur.close()
    conn.close()
    return(j)
if __name__ == '__main__':
    app.run(debug=True)

3.HTML页面echarts绘图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>炫酷的ECharts</title>
    
 
</head>
 <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 800px;height:500px;margin: 0 auto;"></div>

<!--引入jquery.js-->
<script src="../static/js/jquery.js"></script>
<!--引入echarts.js-->
<script src="../static/js/echarts.js"></script>

<script type="text/javascript">
 
    var myChart = echarts.init(document.getElementById('main'));
 
    var app = {
        x:[],
        y:[],
        z:[]
    };
 
    // 发送ajax请求,从后台获取json数据
    $(document).ready(function () {
       getData();
       console.log(app.x);
       console.log(app.y)
       console.log(app.z)

    });
 
    function getData() {
         $.ajax({
            url:'http://localhost:5000/test',
            data:{},
            type:'GET',
            async:false,
            dataType:'json',
            success:function(data) {
                app.x = data.x;
                app.y = data.y;
                app.z = data.z;
                myChart.setOption({
                title: {
                        text: '不同商品价格及评分趋势'
                    },
                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:['练习测试']
                    },
                 xAxis: {
                        data: app.x ,
                        axisPointer: {
                                type: 'shadow'
                                }
                    },
                yAxis: [{
                            type: 'value',
                            name: '价格',
                            min: 0,
                            max: 70,
                            interval: 5,
                            // data:app.y
                            },
                            {
                            type: 'value',
                            name: '评分',
                            min: 0,
                            max: 10,
                            interval: 1,
                            axisLabel: {
                                formatter: '{value} 分'
                            }
                            }
                        ],
                series: [
                    {
                    name: '价格',
                    type: 'bar',
                    tooltip: {
                        valueFormatter: function (value) {
                        return value + ' 元';
                        }
                    },
                    data: app.y
                    },
                    {
                    name: '评分',
                    type: 'line',
                    yAxisIndex: 1,
                    tooltip: {
                        valueFormatter: function (value) {
                        return value + ' 分';
                        }
                    },
                    data:  app.z
                    }
                ]
                
                })
            },
            error:function (msg) {
                console.log(msg);
                alert('系统发生错误');
            }
        })
    };
 
</script>


<body>
 
</body>
</html>

4.结果实现

通过ajax异步交互实现echarts绘图


通过爬虫爬取疫情数据,导入本地mysql中,前端通过HTML css 实现页面布局,最终实现如下图:

通过ajax异步交互实现echarts绘图

Mysql 表结构

通过ajax异步交互实现echarts绘图

项目结构目录

通过ajax异步交互实现echarts绘图文章来源地址https://www.toymoban.com/news/detail-412995.html

到了这里,关于通过ajax异步交互实现echarts绘图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索异步交互:JavaScript AJAX 的全面指南

    ​🌈个人主页:前端青山 🔥系列专栏:JavaScript篇 🔖 人终将被年少不可得之物困其一生 依旧 青山 ,本期给大家带来JavaScript篇专栏内容:JavaScript-AjAx 目录 AJAX AJAX 的优势 AJAX 的使用 创建一个 ajax 对象 配置链接信息 发送请求 一个基本的 ajax 请求 ajax 状态码 readyStateChange resp

    2024年02月03日
    浏览(50)
  • Ajax(实现前后端交互效果)

    Ajax学习目标: 能够知道和服务器相关的基本概念;知道客户端和服务器通信的过程;什么是Ajax以及应用场景,知道接口和接口文档的概念。 1.客户端和服务器概念: 上网的本质目的:通过互联网的形式来获取和消费资源; 服务器:上网过程中,负责存放和对外提供资源的

    2024年02月05日
    浏览(51)
  • 探索 AJAX 技术:实现动态数据交互的前端利器

    简介: AJAX(Asynchronous JavaScript and XML)技术在 Web 前端开发中扮演着重要的角色,它通过异步通信和动态内容更新,为用户带来更好的交互体验。本篇笔记将详细探索 AJAX 技术,并通过生动的代码演示来展示其在实现动态数据交互方面的优势。 1. 异步通信 异步通信是一种在

    2024年02月14日
    浏览(43)
  • 《Git入门实践教程》前言+目录

    版本控制系统(VCS)在项目开发中异常重要,但和在校大学生的交流中知道,这个重要方向并未受到重视。具备这一技能,既是项目开发能力的体现,也可为各种面试加码。在学习体验后知道,Git多样化平台、多种操作方式、丰富的资源为业内人士提供了方便的同时,也造成

    2024年02月10日
    浏览(66)
  • FPGA学习实践之旅——前言及目录

    很早就有在博客中记录技术细节,分享一些自己体会的想法,拖着拖着也就到了现在。毕业至今已经半年有余,随着项目越来越深入,感觉可以慢慢进行总结工作了。趁着2024伊始,就先开个头吧,这篇博客暂时作为汇总篇,记录在这几个月以及之后从FPGA初学者到也算有一定

    2024年02月03日
    浏览(55)
  • 通过Echarts怎样实现立体柱状图

    大家好,我是梁木由。之前在做大屏可视化项目时,UI设计了一个立体形状的柱状图,根据之前做的一些图表的项目没有能复用的,没有做过这种立体形状的图表,打开echarts也没看到有相关的demo,看下如何实现 来看下UI设计师给到的设计图 上述设计图种柱状图都是立体的样

    2023年04月22日
    浏览(41)
  • 通过WebSocket实现异步导出

    本篇文章记录大批量数据导出时间过长,导致接口请求超时问题。 解决思路与流程 前端点击导出按钮时开启websocket连接 逻辑处理异步执行 文件处理好后,得到文件的绝对路径 后台socket通知前端绝对路径的地址 前端下载文件到浏览器 文章目录 本地环境  一、WebSocket配置 1.

    2024年02月02日
    浏览(39)
  • echarts通过dataZoom实现单击图像滑动

    实现原理; 1.option中配置初始化的dataZoom属性,并确定初始化数据展现位置 2.通过graphic属性配置图标及文本,并添加点击事件onclick; 3.通过dispatchAction的type: ‘dataZoom’,实现数据的最终展现。 效果:点击1图标,图像向左移一条数据,点击2图标,图像右移一条数据

    2024年01月16日
    浏览(57)
  • Qt+QtWebApp开发笔记(五):http服务器html中使用json触发ajax与后台交互实现数据更新传递

      前面完成了页面的跳转、登录,很多时候不刷新页面就想刷新局部数据,此时ajax就是此种技术,且是异步的。   本篇实现网页内部使用js调用ajax实现异步交互数据。   在js中使用 ajax是通过XMLHttpRequest来实现的。        链接:https://pan.baidu.com/s/1tJMTPhIIyVE40qWxRW

    2024年02月08日
    浏览(107)
  • 4. AJAX与异步编程

    AJAX是一种用于创建交互式网页应用程序的技术。它允许网页通过异步方式与服务器进行通信,从而实现数据的动态加载和更新,而无需刷新整个页面。 AJAX是一种基于Web的技术,它可以让网页在不刷新的情况下动态地更新内容。AJAX的概念和原理是Web开发中非常重要的一部分,

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包