34-Vue之ECharts高级-调色盘


前言

  • 本篇来学习下ECharts中调色盘的使用

调色盘

  • 它是一组颜色,图形、系列会自动从其中选择颜色, 不断的循环从头取到尾, 再从头取到尾, 如此往复
  • 主要分三种:主题调色盘、全局调色盘、局部调色盘
主题调色盘
echarts.registerTheme('myCustomTheme', {
        "color": [
            "#893448",
            "#d95850",
            "#eb8146",
            "#ffb248",
            "#f2d643",
            "#ebdba4"
        ],
        "backgroundColor": "rgba(242,234,191,0.15)",

    })
  • 完整代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECharts高级-调色盘</title>
    <!-- cdn方式 引入echarts.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
    <script src="lib/CustomTheme.js"></script>
</head>

<body>
<div id='app' style="width: 600px;height:400px"></div>
<script>
    // 主题调色盘
    echarts.registerTheme('myCustomTheme', {
        "color": [
            "#893448",
            "#d95850",
            "#eb8146",
            "#ffb248",
            "#f2d643",
            "#ebdba4"
        ],
        "backgroundColor": "rgba(242,234,191,0.15)",

    })
    var mCharts = echarts.init(document.getElementById("app"), 'myCustomTheme')
    // var mCharts = echarts.init(document.getElementById("app"))

    var pieData = [
        {
            name: 'pass',
            value: 80
        },
        {
            name: 'fail',
            value: 10
        },
        {
            name: 'skip',
            value: 5
        },
        {
            name: 'error',
            value: 5
        }
    ]
    var option = {
        series: [
            {
                type: 'pie',
                data: pieData,
                label: {
                    show: true,
                    formatter: function (arg) {
                        console.log(arg)
                        return arg.data.name + '\n' + arg.percent + '%'

                    }
                },
                selectedMode: 'multiple',  // multiple 多选  single 单选
                selectedOffset: 30,// 偏移距离
                radius: ['50%', '80%']

            }

        ]
    }
    mCharts.setOption(option)
</script>
</body>

</html>

  • 效果

在这里插入图片描述

全局调色盘
  • 全局调色盘:在 option 下增加一个 color 的数组
var option = {
  // 全局调色盘
        color: ['red', 'green', 'blue', 'skyblue', 'purple']
  }
  • 完整代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECharts高级-调色盘</title>
    <!-- cdn方式 引入echarts.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
    <script src="lib/CustomTheme.js"></script>
</head>

<body>
<div id='app' style="width: 600px;height:400px"></div>
<script>  
    var mCharts = echarts.init(document.getElementById("app"))

    var pieData = [
        {
            name: 'pass',
            value: 80
        },
        {
            name: 'fail',
            value: 10
        },
        {
            name: 'skip',
            value: 5
        },
        {
            name: 'error',
            value: 5
        }
    ]
    var option = {
        // 全局调色盘
        color: ['red', 'green', 'blue', 'skyblue', 'purple'],
        series: [
            {
                type: 'pie',
                data: pieData,
                label: {
                    show: true,
                    formatter: function (arg) {
                        console.log(arg)
                        return arg.data.name + '\n' + arg.percent + '%'

                    }
                },
                selectedMode: 'multiple',  // multiple 多选  single 单选
                selectedOffset: 30,// 偏移距离
                radius: ['50%', '80%']

            }

        ]
    }
    mCharts.setOption(option)
</script>
</body>

</html>


  • 效果

在这里插入图片描述

局部调色盘
  • 局部调色盘:在 series 下增加一个 color 的数组
  • 说明:如果全局的调色盘和局部的调色盘都设置了, 局部调色盘会产生效果, 这里面遵循的是就近原则
var option = {
  // 全局调色盘
   color: ['red', 'green', 'blue', 'skyblue', 'purple'],
  series: [
   {
      type: 'pie',
      data: pieData,
      // 局部调色盘
      color: ['pink', 'yellow', 'black', 'orange', 'red']
   }
 ]
}
mCharts.setOption(option)

  • 效果
    在这里插入图片描述
渐变颜色
  1. 线性渐变
    • 线性渐变的类型为 linear , 他需要配置线性的方向, 通过 x, y, x2, y2 即可进行配置
      x , y , x2 , y2 , 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 global 为 true ,则
      该四个值是绝对的像素位置

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>线性渐变</title>
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>

<body>

<div id='app' style="width: 600px;height: 400px"></div>
<script>

    var myCharts = echarts.init(document.getElementById('app'))

    var option = {
        xAxis: {
            type: 'category',   // 类目轴
            data: ['测试', '研发', '产品']
        },
        yAxis: {
            type: 'value' // 数值轴
        },
        title: {
            text: '岗位',  // 标题文本
            link: 'https://blog.csdn.net/IT_heima', // 标题超链接
            target: 'blank',    // 打开新窗口,  self: 当前窗口
            textStyle: {    // 文字样式
                color: 'pink', // 颜色
                fontWeight: 'bold' // 字体粗细
            }

        },
        series: [
            {
                name: '岗位',
                type: 'bar',  // 图表类型  bar:柱状图   line:折线图   pie:饼图
                data: [10, 90, 20],
                itemStyle: {
                    color: {
                        type: 'linear',
                        x: 0,   // 0 0 0 1 意味着从上往下进行渐变
                        y: 0,
                        x2: 0,
                        y2: 1,
                        colorStops: [{
                            offset: 0, color: 'pink' // 0%处的颜色(最高点)
                        }, {
                            offset: 1, color: 'red' // 100% 处的颜色(最低点)
                        }]
                    }
                }
            }
        ]
    }
    myCharts.setOption(option)
</script>
</body>

</html>

  • 效果
    在这里插入图片描述
  1. 径向渐变
    • 线性渐变的类型为 radial , 他需要配置径向的方向, 通过 x , y , r 即可进行配置
      前三个参数分别是圆心 x , y 和半径,取值同线性渐变

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>线性渐变</title>
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.1/dist/echarts.min.js"></script>
</head>

<body>

<div id='app' style="width: 600px;height: 400px"></div>
<script>

    var myCharts = echarts.init(document.getElementById('app'))

    var option = {
        xAxis: {
            type: 'category',   // 类目轴
            data: ['测试', '研发', '产品']
        },
        yAxis: {
            type: 'value' // 数值轴
        },
        title: {
            text: '岗位',  // 标题文本
            link: 'https://blog.csdn.net/IT_heima', // 标题超链接
            target: 'blank',    // 打开新窗口,  self: 当前窗口
            textStyle: {    // 文字样式
                color: 'pink', // 颜色
                fontWeight: 'bold' // 字体粗细
            }

        },
        series: [
            {
                name: '岗位',
                type: 'bar',  // 图表类型  bar:柱状图   line:折线图   pie:饼图
                data: [10, 90, 20],
                itemStyle: {  
                    color: {
                        type: 'radial', // 径向渐变
                        x: 0.5,
                        y: 0.5,
                        r: 0.5,
                        colorStops: [
                            {
                                offset: 0, color: 'red' // 0%处的颜色为红色
                            },
                            {
                                offset: 1, color: 'pink' // 100%处的颜色为蓝
                            }
                        ]
                    }
                }
            }
        ]
    }
    myCharts.setOption(option)
</script>
</body>

</html>

  • 效果
    在这里插入图片描述