Echarts柱状图基本配置

barOption = {
    xAxis: {
        // x轴
        type: "category",
        // 坐标轴刻度标签的相关配置
        axisLabel: {
            show: true,
            color: "#c23531", // 标签的字体颜色
            interval: 0, // 坐标轴刻度标签的显示间隔,默认会采用标签不重叠的策略间隔显示标签.设置成0强制显示所有标签,1表示隔一个标签显示一个标签,以此类推
            rotate: 40, // 坐标轴刻度标签(逆时针)旋转40度显示,旋转的角度从 -90 度到 90 度。
            formatter(params) {
                // 刻度标签的内容格式器
                // 标签过长大于4,显示...
                if (params.length > 4) {
                    return params.substring(0, 4) + "...";
                } else {
                    return params;
                }
            }
        }
    },
    yAxis: {
        // y轴
        type: "value"
    },
    tooltip: {
        // 提示框组件
        trigger: "axis", // 触发类型:坐标轴触发,这个字段的功能是:在堆积柱状图的时候hover柱子的时候会出现整个柱子的数据,而不是只出现当前鼠标所在柱子区域的数据。'item'数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。'axis'坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
        axisPointer: {
            type: "shadow"
        },
        confine: true, // 是否将 tooltip 框限制在图表的区域内。当图表外层的 dom 被设置为 'overflow: hidden',或者移动端窄屏,导致 tooltip 超出外界被截断时,此配置比较有用。

        position: function(point, params, dom, rect, size) {
            // console.info("当前鼠标所在位置", point[0], point[1])
            // console.info("提示框大小", size.contentSize[0], size.contentSize[1])
            // 提示框位置
            var x = 0; // x坐标位置
            var y = 0; // y坐标位置

            // 当前鼠标位置
            var pointX = point[0];
            var pointY = point[1];

            // 提示框大小
            var boxWidth = size.contentSize[0];
            var boxHeight = size.contentSize[1];

            // boxWidth > pointX当盒子宽度大于鼠标的位置(即鼠标与左边框的距离)说明鼠标左边放不下提示框
            if (boxWidth > pointX) {
                x = 5;
            } else {
                // 左边放的下
                x = pointX - boxWidth;
            }
            // boxHeight > pointY 当盒子高度大于鼠标的位置(即鼠标与上边框的距离)说明鼠标上边放不下提示框
            if (boxHeight > pointY) {
                y = 5;
            } else {
                // 上边放得下
                y = pointY - boxHeight;
            }
            return [x, y];
        },

        formatter(params) {
            // 提示框的内容格式器
            const title = params[0].name;
            let title1 = "";
            let title2 = "";
            let results = "";
            if (title.length > 20) {
                title1 = title.slice(0, 20);
                title2 = title.slice(20);
            } else {
                title1 = title;
            }
            params.forEach(item => {
                results +=
                    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:" +
                    item["color"] +
                    "'></span>" +
                    item["seriesName"] +
                    ":" +
                    item["value"] +
                    "<br/>";
            });
            if (title2.length) {
                return title1 + "</br>" + title2 + "</br>" + results;
            } else {
                return title1 + "</br>" + results;
            }
        }
    },
    grid: {
        // 直角坐标系内绘图网格,单个 grid 内最多可以放置上下两个 X 轴,左右两个 Y 			轴。可以在网格上绘制折线图,柱状图,散点图(气泡图)。
        // left: "3%",
        // right: "4%",
        // bottom: "8%",
        // containLabel: true // grid区域是否包含坐标轴的刻度标签,避免标签名字太长溢出
    },
    series: {
        // 系列列表。每个系列通过 type 决定自己的图表类型
        // name: "", // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列
        type: "bar", // line表示折线图、bar表示柱状图、pie表示饼图
        stack: "数量", // 数据堆叠,同个类目轴上系列配置相同的stack值可以堆叠放置。
        barWidth: 20 // 柱条的宽度,不设时自适应。

        // 这个itemStyle需要自己在文件中写
        /**
        itemStyle: {
            // 图形样式
            normal: {
                // 表示默认样式
                // echarts的渐变色生成器new echarts.graphic.LinearGradient(a,b,c,d,arr) a:1 arr中的颜色右到左 c:1 arr中的颜色左到右 b:1 arr中的颜色下到上 d:1 arr中的颜色上到下
                color: new this.$echarts.graphic.LinearGradient(
                    0,
                    0,
                    0,
                    1, // 渐变是从上到下
                    [
                        {
                            offset: 0,
                            color: "#FFB7DD"
                        },
                        {
                            offset: 0.5,
                            color: "#FF0000"
                        },
                        {
                            offset: 1,
                            color: "#8C0044"
                        }
                    ]
                )
                // barBorderRadius: [5, 5, 5, 5] //圆角半径(顺时针左上,右上,右下,左下)
            }
        } */
    },
    legend: {
        // icon: "rect", // 图例项的icon,类型包括 circle(圆形),rect(正方形),roundRect(圆角正方形),triangle(三角形),diamond(菱形),pin(大头针行),arrow(箭头形),none(无图例项的icon)
        show: true,
        width: "320",
        top: "5%",
        type: "scroll", // 图例的类型:plain普通图例 scroll可滚动翻页的图例。当图例数量较多时可以使用。
        padding: [0, 20],
        textStyle: {
            // color: "#BBCEE8"
            color: "#000"
        },
        pageIconColor: "#ffbe1c", // 翻页按钮的颜色。
        pageTextStyle: {
            // 图例页信息的文字样式。
            color: "#BBCEE8"
        },
        pageIconSize: 12, // 翻页按钮的大小
        tooltip: {
            show: true
        },
        data: [], // legend的data和series的name相同,legend才会显示
        formatter: function(params) {
            if (params.length > 20) {
                return params.slice(0, 20) + "...";
            } else {
                return params;
            }
        }
    },
    dataZoom: [
        // dataZoom组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数				据整体,或者去除离群点的影响。
        {
            type: "slider",
            show: true,
            xAxisIndex: [0], // 控制对应的x轴,这里表示这个dataZoom控制第一个x轴
            height: 8,
            borderColor: "#d0001c",
            fillerColor: "#FF00ff", // 滑块颜色
            bottom: "8%", // 滚动条距离页面底部的距离
            // minValueSpan: 12, // 用于限制窗口大小的最小值, 最少显示10条数据
            startValue: 0, // 数据窗口范围的起始数值
            endValue: 10, // 数据窗口范围的结束数值
            showDataShadow: false, // 是否显示数据阴影 默认auto
            showDetail: false // 即拖拽时候是否显示详细数值信息 默认true
            // start: 0, // 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。
            // end: 30 // 数据窗口范围的结束百分比。范围是:0 ~ 100。滑块的长度,如果当前显示10条数据,那滑块的长度从start: 0到end: 30(0.3*10=3)的位置的长度,此算法适用于没有配置minValueSpan(强制显示多少条数据)的时候
        },
        {
            type: "inside",
            xAxisIndex: [0], // 控制对应的x轴,这里表示这个dataZoom控制第一个x轴
            // minValueSpan: 12, // 最少显示16条数据
            startValue: 0, // 数据窗口范围的起始数值
            endValue: 10 // 数据窗口范围的结束数值
            // start: 0, // 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。
            // end: 30 // 数据窗口范围的结束百分比。范围是:0 ~ 100。滑块的长度,如果当前显示10条数据,那滑块的长度从start: 0到end: 30(0.3*10=3)的位置的长度,此算法适用于没有配置minValueSpan(强制显示多少条数据)的时候
        }
    ]
};```


版权声明:本文为qq_41401025原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。