echarts动态更新数据

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

<!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>
  </head>

  <body>
    <div id="sex-statistics" style="width: 600px; height: 400px"></div>
    <!-- 引入echarts和jQuery -->
    <script src="/echarts.min.js"></script>
    <script src="/jQuery.js"></script>
    <script>
      var sexChart = echarts.init(document.getElementById("sex-statistics"));
      // 指定图表的配置项和数据
      var sexOption = {
        title: {
          text: "xx教室学生人数实时数据",
        },
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b}: {c} ({d}%)", //a:图名 b:data[n].name c:value d:百分比
        },
        legend: {
          //图例配置
          orient: "vertical", //图例纵向显示
          x: "left", //在图的左边显示
          y: "middle", //a在图的下方显示
          data: ["男", "女"], //图例名称,与data中的name对应
        },
        series: [
          {
            //图表系列。可以有多个,每个系列通过 type 决定自己的图表类型
            name: "学生性别",
            type: "pie", //饼图,用饼图的方式来实现环形图
            radius: ["50%", "70%"], //这里使用饼图来做环形图,因此,要定义内外两个圆占整个图的比例
            label: {
              //配置标签,这里是圆环图中间的标签
              normal: {
                show: false,
                position: "center",
              },
              emphasis: {
                show: true,
                textStyle: {
                  fontSize: "30",
                  fontWeight: "bold",
                },
              },
            },
            data: [
              {
                //数据配置
                name: "男",
                value: 2,
              },
              {
                name: "女",
                value: 1,
              },
            ],
          },
        ],
      }; // 使用刚指定的配置项和数据显示图表。
      sexChart.setOption(sexOption);

      // 动态数据获取
      var url =
        "https://console-mock.apipost.cn/app/mock/project/ecd658cf-4753-4eed-c388-d0f19bed9df5/stunum";

      // 定时任务
      setInterval(function () {
        //1、发送ajax消息获取实时男女生数据
        //2、通过setOption函数,设置到图表中
        $.get(url, function (res) {
          var a = res.male;
          var b = res.female;
          console.log(a, b);
          sexChart.setOption({
            series: [
              {
                data: [
                  { value: res["male"], name: "男" },
                  { value: res["female"], name: "女" },
                ],
              },
            ],
          });
        });

        sexChart.setOption(sexOption);
      }, 2000);
    </script>
  </body>
</html>

在Vue Echarts中,当我们需要更新数据时,我们可以重新初始化Echarts来使图表根据新的数据进行变化。具体做法是在请求成功后,调用Echarts的初始化函数,将新的数据传递给它。这样Echarts会根据新的数据重新绘制图表,实现动态更新数据的效果。 举个例子,假设我们有一个饼图,我们可以在请求成功后重新初始化Echarts,传入新的数据。代码示例如下: ```javascript // 在Vue的methods中定义一个函数来重新初始化Echarts methods: { pie_submit(index, newData) { // 请求成功后获取到新的数据newData // 重新初始化Echarts let chartDom = document.getElementById('first-line-left'); let myChart = echarts.init(chartDom); let option = { // 设置Echarts的配置项和数据 // ... series: [{ type: 'pie', data: newData }] }; myChart.setOption(option); } } ``` 在上面的例子中,我们通过获取到新的数据newData后,重新初始化了Echarts,并将新的数据传递给它的series来更新饼图的数据。这样就可以实现了Vue Echarts动态更新数据的效果。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* *2* [vue使用echarts是,动态获取数据动态更新图表数据。](https://blog.youkuaiyun.com/weixin_46371752/article/details/123342748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值