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

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日

悬赏问题

  • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
  • ¥15 ArcGIS批量裁剪
  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错
  • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
  • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥15 抖音看过的视频,缓存在哪个文件