Echarts:读取动态数据

前言

使用Echarts画图时,数据一般不是静态写死的,而是通过后端接口动态获取的,因此本文结合官网提供的demo来演示Echarts怎么获取动态数据

Echarts读取动态数据

ECharts 中实现异步数据的更新很简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。

step1:创建好相关的工程文件

工程文件目录如下:
在这里插入图片描述

  • js文件夹:
    存放的是echarts和jquery的相关文件,有了这些文件我们才能使用echarts和jquery的功能:
    在这里插入图片描述

  • data文件夹:
    存放json格式的数据文件,该文件用来模拟我们从后端获取的数据,json文件的内容如下:
    在这里插入图片描述

step2:ECharts绑定数据

ECharts 绑定数据的方式有两种:

(1)方法一:

直接异步读取数据的同时设置好图表参数和数据绑定

  • 核心代码:
    可以根据实际情况按照下方标注的地方进行修改:
    在这里插入图片描述

  • 结果:
    在这里插入图片描述

  • 完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/echarts.min.js"></script>
    <script src="./js/jquery.js"></script>
</head>

<body>
    <div id="main" style="width: 400px;height:400px;border: 1px solid gray"></div>
    
    <script type="text/javascript">

        var myChart = echarts.init(document.getElementById('main'));
        
        $.get('data/data.json').done(function(data) {
            myChart.setOption({
                title: {
                    text: '异步数据加载示例'
                },
                tooltip: {},
                legend: {},
                xAxis: {
                    data: data.categories
                },
                yAxis: {},
                series: [
                    {
                        name: '销量',
                        type: 'bar',
                        data: data.values
                    }
                ]
            });
        });
    </script>
    
</body>

</html>

(2)方法二:

先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据

  • 核心代码:
    可以根据实际情况按照下方标注的地方进行修改:
    在这里插入图片描述

  • 结果:

在这里插入图片描述

  • 完整代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/echarts.min.js"></script>
    <script src="./js/jquery.js"></script>
</head>
<body>

    <div id="main" style="width: 400px;height:400px;border: 1px solid gray"></div>
    
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main')); 
        // 显示标题,图例和空的坐标轴
        myChart.setOption({
            title: {
                text: '异步数据加载示例'
            },
            tooltip: {},
            legend: {
                data: ['销量']
            },
            xAxis: {
                data: []
            },
            yAxis: {},
            series: [
                {
                    name: '销量',
                    type: 'bar',
                    data: []
                }
            ]
        });      
        // 异步加载数据
        $.get('data/data.json').done(function(data) {
            // 填入数据
            myChart.setOption({
                xAxis: {
                    data: data.categories
                },
                series: [
                    {
                        // 根据名字对应到相应的系列
                        name: '销量',
                        data: data.values
                    }
                ]
            });
        });           
    </script>
    
</body>

</html>
  • 7
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
读取 MySQL 数据库并在 echarts 饼图中显示数据,您需要使用服务器端脚本(如 PHP、Python 或 Node.js)来查询数据库并将数据返回给前端页面。以下是一个基本的示例: 1. 在 HTML 页面中包含 echarts 库和一个容器元素,用于呈现饼图: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>echarts 饼图示例</title> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script> </head> <body> <div id="pie-chart" style="width: 600px; height: 400px;"></div> <script> var chart = echarts.init(document.getElementById('pie-chart')); // 在这里编写 JavaScript 代码以生成饼图 </script> </body> </html> ``` 2. 创建服务器端脚本(以 PHP 为例),该脚本应该查询 MySQL 数据库并将结果作为 JSON 格式返回给前端页面: ```php <?php // 连接到 MySQL 数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = mysqli_connect($servername, $username, $password, $dbname); // 查询数据 $sql = "SELECT category, value FROM pie_data"; $result = mysqli_query($conn, $sql); // 将结果转换为 JSON 格式 $data = array(); while ($row = mysqli_fetch_assoc($result)) { $data[] = array( 'name' => $row['category'], 'value' => $row['value'] ); } $json_data = json_encode($data); // 输出 JSON 格式数据 header('Content-Type: application/json'); echo $json_data; // 关闭数据库连接 mysqli_close($conn); ?> ``` 3. 在前端页面中使用 AJAX 技术从服务器端脚本中获取数据,并将其用于生成 echarts 饼图: ```html <script> var chart = echarts.init(document.getElementById('pie-chart')); // 使用 AJAX 技术获取数据 var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var data = JSON.parse(xhr.responseText); // 在这里编写 JavaScript 代码以生成饼图 chart.setOption({ series: [{ type: 'pie', data: data }] }); } }; xhr.open('GET', 'get_pie_data.php', true); xhr.send(); </script> ``` 在这个示例中,服务器端脚本是 PHP 脚本,它查询一个名为 `pie_data` 的表,并将其中的 `category` 和 `value` 字段作为饼图的标签和值。您可以根据自己的需要修改此示例以适应您的数据源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值