当前位置: 首页 > article >正文

echarts 柱形图重叠柱形图legend,双y轴

echarts 图表组件:

<template>
    <div :style="{ height: '100%' }">
        <div class="foldLine" ref="foldLine" :style="{ width: widths, height: heights }"></div>
    </div>
</template>
<script>
import * as echarts from 'echarts';
export default {
    props: {
        id: {
            type: String,
            default: 'lineEchartNew'
        },
        heights: {
            type: String,
            default: '100%'
        },
        widths: {
            type: String,
            default: '100%'
        },
        tagName: {
            type: String,
            default: '排名'
        },
        indexName: {
            type: String,
            default: ''
        },
        unit: {
            type: String,
            default: ''
        },
        chartObj: {
            type: Array,
            default: () => {
                return [];
            }
        },
        objs: {
            type: Object,
            default: () => {
                return {
                    height: '100%'
                };
            }
        }
    },
    data() {
        return {
            chart: null
        };
    },
    watch: {
        chartObj: {
            handler() {
                this.initEchats();
            },
            deep: true
        }
    },
    mounted() {
        this.$nextTick(() => {
            this.init();
        });
    },
    beforeDestroy() {
        this.chart && this.chart.dispose();
        this.chart = null;
    },
    methods: {
        init() {
            this.chart = echarts.init(this.$refs.foldLine);
            this.initEchats();
        },
        // 整体折线图显示不通颜色
        getLineColor(healthListScore) {
            let arr = [];
            healthListScore.forEach((v, i) => {
                let obj = {
                    gt: i - 1,
                    lt: i,
                    // color: healthListScore[i] < 90 ? 'rgba(229,27,88,0.68)' : '#D0FB7C'
                    color: '#D0FB7C'
                };
                arr.push(obj);
            });
            return arr;
        },
        initEchats() {
            let option = {
                tooltip: {
                    trigger: 'axis'
                    // formatter: '{a1}<br/>{b1}:{c1}%'
                },
                grid: {
                    top: '25%',
                    left: '3%',
                    right: '8%',
                    bottom: '15%',
                    containLabel: true
                },
                legend: {
                    top: '0',
                    x: 'center',
                    textStyle: {
                        fontSize: 12,
                        color: 'rgba(101, 213, 255, 1)'
                    },
                    itemWidth: 10, // 设置宽度
                    itemHeight: 10, // 设置高度、
                    itemGap: 12, // 设置间距
                    data: ['资源容量', '实际使用量', '资源使用率']
                },
                xAxis: {
                    axisLine: {
                        lineStyle: {
                            color: '#D0DEEE' // 设置 x 轴颜色
                        }
                    },
                    data: ['2024/09', '2024/10', '2024/11', '2024/12', '2025/01', '2025/02']
                },
                color: ['#4489F0', '#0BF0FF', '#FB944F'],
                yAxis: [
                    {
                        type: 'value',
                        name: '单位',
                        //坐标轴最大值、最小值、强制设置数据的步长间隔
                        // max: 33,
                        // min: 15,
                        // 刻度线的间距
                        // interval: 3.6,
                        axisLabel: {
                            textStyle: {
                                color: '#a8aab0',
                                fontStyle: 'normal',
                                fontFamily: '微软雅黑',
                                fontSize: 12
                            }
                            //y轴上带的单位
                            // formatter: '{value} ℃'
                        },
                        axisLine: {
                            lineStyle: {
                                type: 'dashed' // 设置虚线类型
                            }
                        },
                        //坐标轴刻度相关设置。
                        axisTick: {
                            show: false
                        },
                        //分割线
                        splitLine: {
                            show: true,
                            lineStyle: {
                                color: '#a8aab0',
                                type: 'dashed',
                                //透明度
                                opacity: 0.3,
                                width: 1
                            }
                        }
                    },
                    {
                        type: 'value',
                        name: '使用率(%)',
                        max: 100,
                        min: 0,
                        interval: 16.4,
                        // axisLabel: {
                        //     textStyle: {
                        //         color: '#a8aab0',
                        //         fontStyle: 'normal',
                        //         fontFamily: '微软雅黑',
                        //         fontSize: 12
                        //     },
                        //     // formatter: '{value} %'
                        //     formatter: '{value} %'
                        // },
                        //轴线
                        axisLine: {
                            lineStyle: {
                                type: 'dashed' // 设置虚线类型
                            }
                        },
                        //坐标轴刻度相关设置。
                        axisTick: {
                            show: false
                        },
                        //分割线
                        splitLine: {
                            show: false,
                            lineStyle: {
                                color: '#a8aab0',
                                type: 'dashed',
                                //透明度
                                opacity: 0.3,
                                width: 1
                            }
                        }
                    }
                ],
                series: [
                    {
                        name: '资源容量',
                        type: 'bar',
                        barWidth: 12,
                        z: '-1',
                        barGap: '-100%',
                        itemStyle: {
                            borderRadius: [10, 10, 0, 0] // 这里设置圆角的大小,数组的前两个值设置上左的圆角,后两个值设置下右的圆角
                        },
                        data: [1000, 800, 700, 1000, 600, 1000]
                    },
                    {
                        name: '实际使用量',
                        type: 'bar',
                        barWidth: 12,
                        data: [555, 750, 656, 850, 540, 750]
                    },
                    {
                        name: '资源使用率',
                        type: 'line',
                        // barWidth: 24,
                        barGap: '1%',
                        symbol: 'circle',
                        symbolSize: 5,
                        yAxisIndex: 1, //指定需要使用的Y轴
                        data: [100, 70, 50, 90, 100, 80, 90],
                        itemStyle: {
                            color: '#FB944F',
                            borderColor: '#D0FB7C',
                            borderWidth: 1,
                            borderType: 'solid'
                        }
                    }
                ]
            };

            if (option && typeof option === 'object') {
                this.chart.clear(); //画布清空
                this.chart.resize(); //自适应div的大小
                this.chart.setOption(option, true);
                // this.chart.setOption(
                //     {
                //         series: seriesArr
                //     },
                //     { notMerge: false, lazyUpdate: false, silent: false }
                // );
            }
        }
    }
};
</script>
<style lang="scss" scoped></style>


http://www.kler.cn/a/460765.html

相关文章:

  • 高频java面试题
  • ceph文件系统
  • driftingblues2
  • Python 字符串定义及前缀
  • Kraft模式安装Kafka(含常规、容器两种安装方式)
  • linux装git
  • Spring Boot教程之四十一:在 Spring Boot 中调用或使用外部 API
  • Kafka中的Topic和Partition有什么关系?
  • 掌握大数据处理利器:Flink 知识点全面总结【上】
  • ESLint+Prettier的配置
  • 【Cesium】三、实现开场动画效果
  • Rust入门学习笔记
  • Lecture 20
  • Django 中数据库迁移命令
  • 基于SpringBoot的宠物寄养系统的设计与实现(源码+SQL+LW+部署讲解)
  • 一起学Git【第七节:查看文件以及文件的删除】
  • 文献阅读分享:强化学习与大语言模型结合的推荐系统LEA
  • 封装echarts成vue component
  • 拉取 Docker 镜像 失败问题
  • Leetcode 3404. Count Special Subsequences
  • 边缘AI计算怎么回事
  • 【paddle】初次尝试
  • jenkins集成工具(一)部署php项目
  • ROS2软件架构全面解析-学习如何设计通信中间件框架
  • SCAU期末笔记 - 计算机系统基础考纲习题
  • docker和k8s实践