在vue2中使用echarts散点图x轴为中文

在echarts官网上的散点图的例子的x轴都是数字型的,没有中文型的案例,所以在项目中遇到x轴为中文型的图表是没有案例参考,所以百度了一下,实现过程也很简单,但是还是记录一下。

如果直接用官网上的案例配置[x,y],散点图上的点是没有办法显示的。

echarts3.png

要单独设置x轴的数据,并且根据x轴的数据获取索引设置散点图的data数据。以下是步骤:

1、下载echarts组件

npm install echarts -S
echarts1.png

2、在main.js中引入echarts组件

import * as echarts from "echarts";
Vue.prototype.$echarts = echarts;
echarts2.png

源数据

list: [
    { date: "2023-07-07 10:00:00", num: 10 },
    { date: "2023-07-07 11:00:00", num: 20 },
    { date: "2023-07-07 12:00:00", num: 21 },
    { date: "2023-07-07 13:00:00", num: 14 },
    { date: "2023-07-07 14:00:00", num: 16 },
    { date: "2023-07-07 15:00:00", num: 10 },
    { date: "2023-07-07 16:00:00", num: 18 },
    { date: "2023-07-07 17:00:00", num: 19 },
    { date: "2023-07-07 18:00:00", num: 5 },
    { date: "2023-07-07 19:00:00", num: 9 },
    { date: "2023-07-07 20:00:00", num: 8 }
],

3、单独配置x轴

// data
option: {
    xAxis: [{
        data:[]
    }],
    series: [
        {
            name: '',
            type: 'scatter',
            data: [],
            dimensions: ['x', 'y'],
            symbolSize: 10,
            large: true
        }
    ]
},
// methods
// 单独配置x轴的数据
this.list.forEach(item => {
    this.option.xAxis[0].data.push(item.date)
})

4、配置散点图data数据

// data
option: {
    series: [
        {
            name: '',
            type: 'scatter',
            data: [],
            dimensions: ['x', 'y'],
            symbolSize: 10,
            large: true
        }
    ]
},
// methods
// 根据x轴的数据,获取散点图数据的索引   
this.list.map(item => {
    this.option.series[0].data.push([
        this.option.xAxis[0].data.indexOf(item.date),
        item.num
    ])
})

完整代码

<template>
    <div
      ref="echarts"
      class="echarts-box"
      style="width: 50%; height: 500px"
    ></div>
</template>

<script>
    export default {
        data: () => ({
            list: [
                { date: "2023-07-07 10:00:00", num: 10 },
                { date: "2023-07-07 11:00:00", num: 20 },
                { date: "2023-07-07 12:00:00", num: 21 },
                { date: "2023-07-07 13:00:00", num: 14 },
                { date: "2023-07-07 14:00:00", num: 16 },
                { date: "2023-07-07 15:00:00", num: 10 },
                { date: "2023-07-07 16:00:00", num: 18 },
                { date: "2023-07-07 17:00:00", num: 19 },
                { date: "2023-07-07 18:00:00", num: 5 },
                { date: "2023-07-07 19:00:00", num: 9 },
                { date: "2023-07-07 20:00:00", num: 8 }
            ],
            option: {
                title: {
                    text: ""
                },
                tooltip: {},
                xAxis: [{
                    data:[]
                }],
                yAxis: [{
                    scale:true
                }],
                gird: {
                    width: "10%"
                },
                dataZoom: [
                    {
                        type: 'inside'
                    },
                    {
                        // type: 'slider'
                    }
                ],
                animation: false,
                series: [
                    {
                        name: '',
                        type: 'scatter',
                        data: [],
                        dimensions: ['x', 'y'],
                        symbolSize: 10,
                        large: true
                    }
                ]
            },
        }),
        methods: {
            initEcharts() {
                let myChart = null
                // 单独配置x轴的数据
                this.list.forEach(item => {
                    this.option.xAxis[0].data.push(item.date)
                })
                // 根据x轴的数据,获取散点图数据的索引   
                this.list.map(item => {
                    this.option.series[0].data.push([
                        his.option.xAxis[0].data.indexOf(item.date),
                        tem.num
                    ])
                })
                myChart = this.$echarts.init(this.$refs.echarts);
                myChart.setOption(this.option, true);
            }
        },
        mounted() {
            this.initEcharts();
        }
    };
</script>

效果图

echarts4.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容