首页 > 其他 > 详细

echarts雷达图怎么给每个拐点设置不同的颜色

时间:2021-06-14 10:56:58      阅读:161      评论:0      收藏:0      [点我收藏+]

最近有这样的需求需要用到echarts的 雷达图 然后这不是主要的,因为基本的配置官网上都是有的,但是需求要求雷达图的每个拐点要有不同的颜色,这样比较有特色,我。。。最后在官网找了半天发现还是只能设置一个颜色,但是需求又要有不同的颜色,怎么办了?投机取巧吧
话不多说,主要的思路是通过绘制多个图形,每个图形设置自己的颜色,然后叠加在一起,产生视觉上的在一张图就可以了,直接上代码吧,不懂的可以去官网看看。

技术分享图片
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>雷达图copy</title>
  <script src="../node_modules/echarts/dist/echarts.min.js"></script>
</head>

<body>
  <div id="main" style="width: 50rem;height: 35rem;"></div>
  <script>
    var myChart = echarts.init(document.getElementById(main))
    var itemArr = [90, 80, 70, 60, 50, 40];   //数据数组
    var n1 = [90, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘]
    var n2 = [‘‘, 80, ‘‘, ‘‘, ‘‘, ‘‘]
    var n3 = [‘‘, ‘‘, 70, ‘‘, ‘‘, ‘‘]
    var n4 = [‘‘, ‘‘, ‘‘, 60, ‘‘, ‘‘]
    var n5 = [‘‘, ‘‘, ‘‘, ‘‘, 50, ‘‘]
    var n6 = [‘‘, ‘‘, ‘‘, ‘‘, ‘‘, 40]
    var n7 = [‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘]
    var labelArr = [外观, 拍照, 系统, 性能, 屏幕, 价格] //显示图例用
    option = {
      legend: {
        orient: vertical,
        left: 400px,
        bottom: 450,
        icon: circle,
        data: labelArr,
        textStyle: {
          color: #000000
        }
      },
      radar: [
        {
          splitLine: {
            lineStyle: {
              color: #000
            }
          }
        },
        {
          indicator: [  //绘制总的图形
            { text: 外观, max: 100 },
            { text: 拍照, max: 100 },
            { text: 系统, max: 100 },
            { text: 性能, max: 100 },
            { text: 屏幕, max: 100 },
            { text: 价格, max: 100 },
          ],
          nameGap: 6,
          center: [50%, 50%],
          radius: 105,
          name: {
            textStyle: {
              color: #000,
              fontSize: 14,
              fontWeight: 400,
            }
          },
          splitArea: {
            areaStyle: {
              color: [none,
                none, none,
                none, none],
            }
          },
          axisLine: {
            lineStyle: {
              color: #cde6f5
            },
          },
          splitLine: {
            lineStyle: {
              color: #cde6f5 //网格的颜色
            },
          }
        }
      ],
      series: [
        {
          type: radar, //绘制总的图形不设置拐点
          radarIndex: 1,
          data: [
            {
              value: itemArr,
              symbolSize: 7,
              lineStyle: {
                width: 2,
                color: #29B8FF
              },
              areaStyle: {
                normal: {
                  opacity: 0.75,
                  color: #f8f7f7
                }
              }
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 0,
              color: #000,
              // show:false
            }
          },
          silent: true,
          z: 1 //图层是一层一层叠加,所以这个也是一级一级递增
        },
        {
          type: radar, //绘制第一个点
          radarIndex: 1,
          name: labelArr[0],
          silent: true,
          z: 2, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n1,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #A66CFE
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          }
        },
        {
          type: radar,
          radarIndex: 1, //绘制第二个点
          name: labelArr[1],
          silent: true,
          z: 3, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n2,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #FFA662
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          },

        },
        {
          type: radar, //绘制第三个点
          radarIndex: 1,
          name: labelArr[2],
          silent: true,
          z: 4, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n3,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #5AA4FB
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          },

        },
        {
          type: radar, //绘制第四个点
          radarIndex: 1,
          name: labelArr[3],
          silent: true,
          z: 5, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n4,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #FF858B
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          },

        },
        {
          type: radar, //绘制第五个点
          radarIndex: 1,
          name: labelArr[4],
          silent: true,
          z: 6, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n5,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #7AF16F
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          },

        },
        {
          type: radar, //绘制第六个点
          radarIndex: 1,
          name: labelArr[5],
          silent: true,
          z: 7, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n6,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #33A7BF
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          },

        },
        {
          type: radar, //这个图层是为了盖住圆心,如果去掉,圆心的颜色为最后一个图层的颜色(不信就自己试试)
          radarIndex: 1,
          name: ‘‘,
          silent: true,
          z: 8, //图层是一层一层叠加,所以这个也是一级一级递增
          data: [
            {
              value: n7,
              symbolSize: 7,
            }
          ],
          itemStyle: {
            normal: {
              borderWidth: 2,
              color: #f8f7f7
            }
          },
          lineStyle: {
            width: 0,
            labelLine: {
              show: false   //隐藏标示线
            }
          },

        },
      ]
    }
    myChart && myChart.setOption(option)
  </script>
</body>

</html>
View Code

上一张图片吧
技术分享图片
为了让大家看的清楚,所以没有进行数据和方法的处理,大家自己进行优化吧 。
代码注释已经写得很详细了,加班太累,先溜了~

echarts雷达图怎么给每个拐点设置不同的颜色

原文:https://www.cnblogs.com/coderwhytop/p/14881634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!