好菜的大学生 2023-03-16 19:04 采纳率: 25%
浏览 15
已结题

vue,Echarts显示数据不完全

vue里用Echarts显示图表,x轴可以显示,但是图表数据没有显示

<template>
  <div>
    <div id="main" style="width: 500px;height: 400px"></div>
  </div>
</template>

<script>
import * as echarts from 'echarts';

export default {
  name: 'count',
  data(){
    return{

    }
  },
  mounted() {
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option = {
      xAxis: {
        type: 'category',
        data: []
      },
      yAxis: {
        name: '数值',
        type: 'value',min:0, // 设置y轴刻度的最小值
        max:50,  // 设置y轴刻度的最大值
        splitNumber:9,  // 设置y轴刻度间隔个数
        axisLine: {
          lineStyle: {
            // 设置y轴颜色
            color: '#87CEFA'
          }
        },
      },
      series: [
        {
          data: [],
          type: 'line'
        }
      ]
    };

    fetch("http://localhost:8080/equipment/getcount").then(response => response.json()).then(res =>{
      res = res.data;
      console.log(res);
      console.log(res.length);

      let oldList = option.xAxis.data || [];
      let oldList2 = option.series.data || [];


      for(let i=0;i<res.length;i++){
        oldList.push(res[i].labid);
      }
      option.xAxis.data=oldList;

      for(let j=0;j<res.length;j++){
        oldList2.push(res[j].num);
      }
      option.series.data=oldList2;
      console.log(oldList);
      console.log(option.xAxis.data)
      console.log(oldList2);
      console.log(option.series.data)
      console.log(option);

      myChart.setOption(option);
    })

  }
}
</script>

<style scoped>

</style>


显示结果是这样的

img

  • 写回答

4条回答 默认 最新

  • 追cium 2023-03-16 19:28
    关注

    参考GPT和自己的思路:

    根据你提供的代码和截图,可能是因为你在使用Echarts时没有正确传入数据导致图表数据没有显示。建议检查以下两个点:

    1. 在option中使用的数据数组名称是series,但是在代码中却使用了option.series.data,这会导致数据无法正确传入。建议将代码中的option.series.data改为option.series[0].data

    2. 在将接口返回的数据加入到option中时,先要清空原数组,否则会产生累加效果。建议在清空原数组后再进行数据推入。

    修改后的代码如下:

    <template>
      <div>
        <div id="main" style="width: 500px;height: 400px"></div>
      </div>
    </template>
    
    <script>
    import * as echarts from 'echarts';
    
    export default {
      name: 'count',
      data(){
        return{}
      },
      mounted() {
        var chartDom = document.getElementById('main');
        var myChart = echarts.init(chartDom);
        var option = {
          xAxis: {
            type: 'category',
            data: []
          },
          yAxis: {
            name: '数值',
            type: 'value',
            min:0, // 设置y轴刻度的最小值
            max:50, // 设置y轴刻度的最大值
            splitNumber:9, // 设置y轴刻度间隔个数
            axisLine: {
              lineStyle: {
                // 设置y轴颜色
                color: '#87CEFA'
              }
            },
          },
          series: [
            {
              data: [],
              type: 'line'
            }
          ]
        };
    
        fetch("http://localhost:8080/equipment/getcount")
        .then(response => response.json())
        .then(res =>{
          res = res.data;
          console.log(res);
          console.log(res.length);
    
          let oldList = option.xAxis.data || [];
          let oldList2 = option.series[0].data || []; // 修改
    
          oldList = []; // 清空数组
          oldList2 = []; // 清空数组
    
          for(let i=0;i<res.length;i++){
            oldList.push(res[i].labid);
          }
          option.xAxis.data=oldList;
    
          for(let j=0;j<res.length;j++){
            oldList2.push(res[j].num);
          }
          option.series[0].data=oldList2; // 修改
          console.log(oldList);
          console.log(option.xAxis.data)
          console.log(oldList2);
          console.log(option.series[0].data) // 修改
          console.log(option);
    
          myChart.setOption(option);
        })
      }
    }
    </script>
    
    <style scoped>
    
    </style>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月16日

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败