Vue项目中使用Echarts 柱形图应用解析

最近在做一个可视化项目(vue+echarts+three.js),其中有六个echarts图表需求,所以在完成项目之后,将图表应用的一些基础参数记录,方便以后复用!提高开发效率。

HTML

<div id="windFarmWarning" style="width: 100%; height: 260px"></div>

JavaScript

<script>
import echarts from "echarts";
import { getLifeData } from "../../api/api.js";

export default {
    data() {
        return:{
            warnChartlist: []
        }
    },
    methods: {
        async getWarningChartHandle(wf) {
            const res = await getWarningChart({ wf: wf })
            this.warnChartlist = res.data;
            // 生成图表
            this.windFarmWarningHandle();
        },
        windFarmWarningHandle() {
            const yMax = 500; // 图表y轴数值
            const data = []; // 主要数据
            const dataAxis = []; // x轴类别数据

            for (let i = 0; i < this.warnChartlist.length; i++) {
                data.push(this.warnChartlist[i].warningCount);
                dataAxis.push(this.warnChartlist[i].model_name);
            }
            const showed = this.warnChartlist.length ? false : true; // 没有数据的时候显示暂无数据的title
            const option = {
                title: {
                    show: showed, // 是否显示title
                    text: '暂无数据',
                    left: 'center',
                    top: 'center',
                    textStyle: {
                        color: '#c6c0dc',
                        fontSize: 14
                    }
                },
                // 鼠标移入图表数据上的信息提示
                tooltip: {
                    // 提示框浮层的移动动画过渡时间。一般设置为0 不然鼠标首次移入图表会出现滚动条闪动
                    transitionDuration: 0,
                    // 提示触发类型:值为axis时 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
                    trigger: "axis", 
                    // 鼠标移入图表的信息提示数据,params[0]表示series中的第一个对象数据。
                    formatter: function(params, t, c) {
                        const result = params[0].name + ':' + params[0].data + '次';
                        return result
                    }
                },
                // 直角坐标系的位置和大小设置
                grid: {
                    height: '70%',
                    left: '10%',
                    top: 'middle'
                },
                // x轴设置
                xAxis: {
                    type:'category', // 类目轴,最常用;也可以是value等,具体可见官方文档
                    name: '模型统计次数', // 坐标轴名称
                    nameGap: 10, // 坐标轴名称与轴线之间的距离。
                    nameLocation: 'center', // 坐标轴名称显示位置
                    nameTextStyle: { // 坐标轴名称的文字样式。可设置的样式有很多,具体可见官方文档
                        color: '#c6c0dc'
                    },
                    data: dataAxis, // x轴类目数据
                    // 坐标轴标签文字设置
                    axisLabel: {
                        show: false
                    },
                    // 坐标轴刻度相关设置。
                    axisTick: {
                        show: false
                    },
                    // 坐标轴轴线相关设置。
                    axisLine: {
                        show: true,
                        // 轴线宽度颜色等相关设置
                        lineStyle: {
                            color: "#271351",
                            width: 2
                        }
                    },
                    z: 10 // 控制图形的前后顺序。z值小的图形会被z值大的图形覆盖(一般不需要设置)
                },
                // y轴设置 (x,y轴的相关设置基本类似)
                yAxis: {
                    // 坐标轴在 grid 区域中的分隔线。
                    splitLine: {
                        show: true,
                        lineStyle: {
                            color: "#271351",
                            width: 1
                        }
                    },
                    axisLine: {
                        show: true,
                        lineStyle: {
                            color: "#271351",
                            width: 2
                        }
                    },
                    axisTick: {
                        show: false
                    },
                    axisLabel: {
                        textStyle: {
                            color: "#999"
                        }
                    }
                },
                //  用于区域缩放,从而能自由关注细节的数据信息。
                dataZoom: [
                    {
                        type: "inside"
                    }
                ],
                // 列表对象数组,可以有多个对象
                series: [
                    {
                        type: "bar", // 决定是什么图表类型,bar(柱状图)
                        barWidth: "40%", // 柱条的宽度
                        // 柱条的样式
                        itemStyle: {
                            barBorderRadius: [10, 10, 0, 0],
                            color: '#569787'
                        },
                        // 图表数据
                        data: data
                    }
                ]
            };
            // 初始化图表对象
            const windFarmWarningChart = echarts.init(
                document.getElementById("windFarmWarning")
            );
            // 先清空图表数据
            windFarmWarningChart.clear();
            // 开启加载
            windFarmWarningChart.showLoading({
                text: '加载中......',
                textColor: '#fff',
                maskColor: 'rgba(255, 255, 255, 0)',
                zlevel: 0
            });
            // 开启定时器
            setTimeout(() => {
                // 渲染图表
                windFarmWarningChart.setOption(option, true);
                // 关闭加载
                windFarmWarningChart.hideLoading();
            }, 1000);
            // 监听窗口,调整窗口大小的时候重载图表
            window.addEventListener("resize", function() {
                windFarmWarningChart.resize();
            });
        },
    }
}
</script>

一个基本的echarts图表应用就是这些参数配置,我们可以根据自己的需求修改相关的配置,在使用的时候删除多余注释。希望可以给有需要的朋友一些帮助,如果有问题的朋友可以评论留言(如果文章有问题也可以指出)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值