Echarts

yuhuo2024-01-30开发库渲染库
参考链接

一. 入门示例

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>ECharts 入门示例</title>
        <style>
            #main {
                width: 600px;
                height: 400px;
            }
        </style>
        <script type="importmap">
            {
                "imports": {
                    "echarts": "../../node_modules/echarts/dist/echarts.esm.js"
                }
            }
        </script>
    </head>
    <body>
        <div id="main"></div>
        <script type="module">
            import * as echarts from "echarts";
            // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById("main"));

            // 指定图表的配置项和数据
            myChart.setOption({
                title: {
                    text: "ECharts 入门示例",
                },
                tooltip: {},
                legend: {
                    data: ["销量"],
                },
                xAxis: {
                    data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
                },
                yAxis: {},
                series: [
                    {
                        name: "销量",
                        type: "bar",
                        data: [5, 20, 36, 10, 10, 20],
                    },
                ],
            });
        </script>
    </body>
</html>

二. 配置项

title

标题

{
    text: "主标题", // 标题文本
    show: true, // 是否显示
    link: "https://www.baidu.com", // 超链接
    target: "blank", // 超链接的打开方式: blank 新窗口, self 当前窗口
    // 文本样式
    textStyle: {
        color: "#464646", // 文字颜色
        fontStyle: "normal", // 文字风格
        fontWeight: "bold", // 文字粗细
        fontFamily: "sans-serif", // 文字字体
        fontSize: 18, // 文字大小
        lineHeight: 18, // 行高
        height: 18, // 高
        width: 400, // ??宽
        align: "right", // ??水平对齐方式
        verticalAlign: "bottom", // ??垂直对齐方式
    },
    subtext: "副标题", // 副标题文本
    sublink: "https://juejin.cn/", // 副标题的超链接
    subtarget: "blank", // 超链接的打开方式
    triggerEvent : true, // ??是否触发事件
    padding: [5, 10, 5, 10], // 内边距,还可 [5, 10], 10
    itemGap: 10, // 标题和副标题的间距
    zlevel: 1, // 分层,越大则越上面
    z: 1, // 同层,越大越上面
    left: 0, // 左侧位置
    right: "auto", // 右侧位置
    top: 0, // 顶部位置
    bottom: "auto", // 底部位置
    backgroundColor: "transparent", //背景颜色
    borderColor: "#d9d9d9", // 边框颜色
    borderWidth: 0, // 边框宽度
    borderRadius: 0, // 边框圆角
    shadowBlur: 5, // 阴影模糊
    shadowColor: "#000000", // 阴影颜色
    shadowOffsetX: 10, // 阴影X轴偏移量
    shadowOffsetY: 10, // 阴影Y轴偏移量
}

legend

图例

{
    type: "plain", // 类型: plain 宽度不足时换行, scroll 宽度不足时滚动
    show: true, // 是否显示
    data: ["销量", "成本", "利润"],
    align: "auto", // 图例和文字的排列: left 图例在左, right 图例在右, auto 自动
    origent: "horizontal", // ??布局朝向: horizontal 水平, vertical 垂直
    padding: 5,
    // zlevel, z
    // left, right, top, bottom
    // width, height
    // textStyle
    // backgroundColor, borderColor, borderWidth, borderRadius
    // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
    itemGap: 10, // 每项间隔
    itemWidth: 25, // 图形宽度
    itemHeight: 14, // 图形高度
    symbolKeepAspect: true, // ??自定义图标是否保存长宽比
    formatter: "→{name}", // 格式化图例文本
    selectedMode: true, // 图例是否允许选中
    inactiveColor: "#ccc", // 图例未选中的颜色
    // 图例初始选中状态
    selected: {
        销量: true,
        成本: true,
        利润": true,
    },
}

tooltip

提示工具

{
    show: true, // 是否显示
    trigger: "axis", // 触发类型: item 数据项, axis 坐标轴, none 没
    position: null, // ??位置,默认跟随鼠标 [10,10],[20%,20%]
    extraCssText: "font-size:15px", // ??附加额外的样式
    // textStyle
    // backgroundColor, borderColor, borderWidth, padding
    // 指示器
    axisPointer: {
        type: "line", // 类型: line 直线, shadow 阴影, cross 十字, none 无
        axis: "x", // 坐标轴: x, y, radius, angle
        snap: true, //是否自动吸附
        z: 0, // 层级
        // 指示器文本标签
        label: {
            show: true, // 当cross时默认为true
            precision: 2, // 小数点位数
            formatter: "→{value}", // 格式化,也可以是function
            margin: 10, // 标签与坐标轴的距离
            // width, height, padding, color, lineHeight
            // fontSize, fontStyle, fontWeight, fontFamily
            // textBorderColor, textBorderWidth
            // textShadowColor, textShadowBlur, textShadowOffsetX, textShadowOffsetY
            // backgroundColor, borderColor, borderWidth
            // shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY
        },
        // 指示器类型为直线时生效
        lineStyle: {
            type: "solid", // 线的类型
            // color, width, shadowBlur, shadowColor
            // shadowOffsetX, shadowOffsetY, opacity
        },
        // 指示器类型为阴影时生效
        shadowStyle: {
            // color, shadowBlur, shadowColor
            // shadowOffsetX, shadowOffsetY, opacity
        },
        // 指示器的类型为十字时生效
        crossStyle: {
            type: "solid", // 线的类型
            // color, width, shadowBlur, shadowColor
            // shadowOffsetX, shadowOffsetY, opacity
        },
    },
}

grid

坐标系网格

{
    show: true, // 是否显示
    containLabel: false, // 定位是否包含标签
    // zlevel, z
    // left, right, top, right
    // right: 10,
    // backgroundColor, borderColor, borderWidth, borderRadius
    // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
}

xAxis

x轴

{
    show: true, // 是否显示
    type: "category", // 类型: value 数值, category 类目, time 时间, log 对数
    data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], // 类目数据,只在类目轴中有效
    gridIndex: 0, // 坐标系grid的索引
    position: "bottom", // 位置: top, bottom
    offset: 0, // 在默认位置的偏移
    name: "商品", // 坐标轴名称
    nameLocation: "end", // 名称位置: start, center, end
    // 名称样式
    nametextStyle: {
        // fontSize, fontStyle, fontWeight, fontFamily,
        // color, lineHeight, width, height
        // textBorderColor, textBorderWidth
        // textShadowColor, textShadowBlur, textShadowOffsetX, textShadowOffsetY
    },
    nameGap: 15, //名称与坐标轴线的距离
    nameRotate: 0, //名称旋转角度
    inverse: false, //是否反向坐标
    // 左留白 = 最小值-(最大值-最小值)*左比例 , 右留白 = 最大值+(最大值-最小值)*右比例
    // 在类目轴中,为boolean值,数据是否在两个刻度之间
    boundaryGap: [2, 0.5], // 坐标轴两边留白比例,设置min和max后失效
    //  min : -20, //最小值
    //  max : 280, //最大值
    scale: true, // 是否脱离零刻度,不强制包含,设置min和max后失效
    splitNumber: 6, // 坐标轴的预估分段数,在类目轴无效
    minInterval: 1, // 最小间隔大小,只在value和time轴类型有效
    maxInterval: 100, // 最大间隔大小,只在value和time轴类型有效
    interval: null, // 强制设置间隔
    logBase: 10, // 对数轴的底数
    silent: false, // 是否静态无交互
    triggerEvent: false, // 标签是否响应和触发鼠标事件
    // zlevel, z, axisPointer
    // 轴线设置
    axisLine: {
        show: true,
        onZero: true, // 轴线是否在另外一个轴线的零刻度上,另一个轴线是数值且有零刻度时有效
        onZeroAxisIndex: 0, // 双轴时选择在哪个轴的零刻度
        symbol: "none", // 轴线两边箭头,也可以分开设置:["none","arrow"],
        symbolSize: [10, 15], // 箭头大小[宽度,高度]
        symbolOffset: 0, // 首尾两个箭头的偏移,也可以分开设置:[0,0]
        // 轴线的样式
        lineStyle: {
            //color, width, type, opacity
            //shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
        },
    },
    // 刻度标签
    axisLabel: {
        show: true, // 是否显示
        interval: "auto", // 标签显示间隔
        inside: false, // 标签朝向: true 内, false 外
        // rotate, margin, formatter,showMinLabel,showMaxLabel
        // fontSize, fontStyle, fontWeight, fontFamily
        // color, align, verticalAlign, lineHeight
        // backgroundColor, padding, width, height
        // borderColor, borderWidth, borderRadius
        // shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY
        // textBorderColor, textBorderWidth,
        //textShadowColor, textShadowBlur, textShadowOffsetX, textShadowOffsetY
    },
    // 刻度线
    axisTick: {
        show: true,
        alignWithLabel: true, // 刻度线和标签对齐,类目轴有效
        interval: 1, // 刻度中间间隔几个类目,在类目轴中有效
        inside: false, //刻度朝向: true 内, false 外
        length: 5, // 刻度线长度
        lineStyle: {
            //轴线的样式
            // color, width, type, opacity
            // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
        },
    },
    // 分割线
    splitLine: {
        show: true, // 默认数值轴显示,类目轴不显示
        interval: 1, // 显示间隔,类目轴有效
        // 轴线的样式
        lineStyle: {
            // color, width, type, opacity
            // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
        },
    },
    // 分割区
    splitArea: {
        show: false, // 是否显示(默认false)
        interval: 1, // 显示间隔,类目轴有效
        areaStyle: {
            // color, width, type, opacity
            // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
        },
    },
}

yAxis

y轴

series

视觉映射

[
    {
        type: "bar", // 类型:bar 柱状图
        name: "销量", // 名称
        data: [5, 20, 36, 10, 10, 20], // 数据
        // 标签
        label: {
            normal: {
                show: true,
                position: "outside",
            },
        },
        barWidth: 20, // 柱宽度
    },
    {
        type: "line", // 类型:line 折线图
        name: "成本",
        data: [20, 15, 10, 36, 20, 10],
        smooth: true, // 折线是否平滑
        stack: "total", // 堆叠,值相同的曲线图,后者会叠加在前者上
        // 折线面积样式
        areaStyle: {
            // color, opacity
            // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
        }
    },
    {
        type: "line", // 类型:line 折线图
        name: "利润",
        data: [5, 10, 10, 10, 15, 15],
        smooth: true, // 折线是否平滑
        stack: "total", // 堆叠,值相同的曲线图,后者会叠加在前者上
        // 折线面积样式
        areaStyle: {
            // color, opacity
            // shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY
        }
    },
],
Last Updated 2024/3/14 09:51:53