vue中使用echarts实现X轴动态时间(天)的折线图表

项目要求x轴以一天为间隔,时间是动态返回的数据,折线图平滑展示

实现代码如下:

<div class="echarts-main">
   <v-chart ref="echarts" :options="options" />
</div>



// 局部引入vue-echarts
import ECharts from 'vue-echarts';
import 'echarts/lib/chart/line';
import 'echarts/lib/component/tooltip';

export default {
  components: {
    'v-chart': ECharts
  },
  data(){
    return {
        statisticsData: []
    }
  },
  computed: {
    options() {
      const options = {
        tooltip: {
          trigger: 'axis' // 显示横坐标值
        },
        xAxis: {
          type: 'time',
          boundaryGap: false,
          axisPointer: {
            type: 'shadow' // 阴影指示器
          },
          interval: 24 * 60 * 60 * 1000, // 固定x轴时间间隔 间隔24小时,也就是一天
          axisLabel: {
            // color: '#76EEC6'
          }
        },
        yAxis: {
          type: 'value'
        },
        series: [
          {
            type: 'line',
            smooth: true, // 平滑曲线显示
             areaStyle: {
              normal: {
                color: '#8cd5c2' //改变区域颜色
              }
            },
            itemStyle: {
              normal: {
                color: '#8cd5c2', //改变折线点的颜色
                lineStyle: {
                  color: '#8cd5c2' //改变折线颜色
                }
              }
            },
            data: this.statisticsData
          }
        ]
      };
      return options;
    }
  },
  mounted(){
    this.getApplicationInfoApi()
  },
  methods:{
    getApplicationInfoApi(){
        // 接口返回的数据格式
        const res = [
        {
          date: '2024-04-19 00:00:00',
          count: 6
        },
        {
          date: '2024-04-20 00:00:00',
          count: 21
        },
        {
          date: '2024-04-21 00:00:00',
          count: 34
        },
        {
          date: '2024-04-22 00:00:00',
          count: 20
        },
        {
          date: '2024-04-23 00:00:00',
          count: 5
        },
        {
          date: '2024-04-24 00:00:00',
          count: 11
        },
        {
          date: '2024-04-25 00:00:00',
          count: 4
        }
      ];
      let arr = [];
      res.forEach(item => {
        arr.push([dayjs(item.date).format('YYYY-MM-DD'), item.count]);
      });
      this.statisticsData = arr;
    }
  }
}

xAxis中 type:time,表示X轴为时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。

series中的 smooth设置为true,表示为平滑曲线显示。

series中的 data可以是一个二维数组。

例如:

series: [{
    data: [
        // 维度X   维度Y   其他维度 ...
        [  3.4,    4.5,   15,   43],
        [  4.2,    2.3,   20,   91],
        [  10.8,   9.5,   30,   18],
        [  7.2,    8.8,   18,   57]
    ]
}]

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 17:24:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 17:24:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 17:24:04       82 阅读
  4. Python语言-面向对象

    2024-04-28 17:24:04       91 阅读

热门阅读

  1. 计算机网络复习(第一章概述)

    2024-04-28 17:24:04       27 阅读
  2. 2024.4.28每日一题

    2024-04-28 17:24:04       33 阅读
  3. 服务器不稳定会不会影响网站运行?

    2024-04-28 17:24:04       28 阅读
  4. 目标检测的迁移学习

    2024-04-28 17:24:04       27 阅读
  5. Web Service接口的HttpURLConnection调用

    2024-04-28 17:24:04       30 阅读
  6. C++指针的比较

    2024-04-28 17:24:04       191 阅读