Echarts如何进行toolbox自定义扩展方法图标的显示,以及改变图标大小和颜色

最近使用Echarts发现了自定义拓展方法,无法显示图标的问题,鼠标悬停可以看到文字显示,但是无法看到图标。
首先,第一步,设置扩展方法里的图标显示(这里可以用线上或本地的图片,也可以用svg,我用的svg)

myTool1: {
                show: true,
				
                title: '自定义扩展方法1',
                icon: "M 11.5 1 A 3.5 3.5 0 0 0 8 4.5 A 3.5 3.5 0 0 0 11.5 8 A 3.5 3.5 0 0 0 15 4.5 A 3.5 3.5 0 0 0 11.5 1 z M 7 9 C 5.346 9 4 10.346 4 12 L 4 16 L 7.2304688 16 C 8.4124688 19.877 11.497 22 16 22 C 16.96 22 18.361266 21.936531 19.447266 21.394531 L 21.498047 20.369141 L 19.351562 19.5625 C 16.854563 18.6265 16.220266 17.081 16.072266 16 L 19 16 L 19 12 C 19 10.346 17.654 9 16 9 L 7 9 z",
                onclick: function (){
                    alert('myToolHandler1')
                }
            },
            myTool2: {
                show: true,
                title: '自定义扩展方法',
                icon: 'M 11.5 1 A 3.5 3.5 0 0 0 8 4.5 A 3.5 3.5 0 0 0 11.5 8 A 3.5 3.5 0 0 0 15 4.5 A 3.5 3.5 0 0 0 11.5 1 z M 7 9 C 5.346 9 4 10.346 4 12 L 4 16 L 7.2304688 16 C 8.4124688 19.877 11.497 22 16 22 C 16.96 22 18.361266 21.936531 19.447266 21.394531 L 21.498047 20.369141 L 19.351562 19.5625 C 16.854563 18.6265 16.220266 17.081 16.072266 16 L 19 16 L 19 12 C 19 10.346 17.654 9 16 9 L 7 9 z',
                onclick: function (){
                    alert('myToolHandler2')
                }
            },

这是完整的svg链接

<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 24 24">
    <path d="M 11.5 1 A 3.5 3.5 0 0 0 8 4.5 A 3.5 3.5 0 0 0 11.5 8 A 3.5 3.5 0 0 0 15 4.5 A 3.5 3.5 0 0 0 11.5 1 z M 7 9 C 5.346 9 4 10.346 4 12 L 4 16 L 7.2304688 16 C 8.4124688 19.877 11.497 22 16 22 C 16.96 22 18.361266 21.936531 19.447266 21.394531 L 21.498047 20.369141 L 19.351562 19.5625 C 16.854563 18.6265 16.220266 17.081 16.072266 16 L 19 16 L 19 12 C 19 10.346 17.654 9 16 9 L 7 9 z"></path>
</svg>

取path部分就可以

M 11.5 1 A 3.5 3.5 0 0 0 8 4.5 A 3.5 3.5 0 0 0 11.5 8 A 3.5 3.5 0 0 0 15 4.5 A 3.5 3.5 0 0 0 11.5 1 z M 7 9 C 5.346 9 4 10.346 4 12 L 4 16 L 7.2304688 16 C 8.4124688 19.877 11.497 22 16 22 C 16.96 22 18.361266 21.936531 19.447266 21.394531 L 21.498047 20.369141 L 19.351562 19.5625 C 16.854563 18.6265 16.220266 17.081 16.072266 16 L 19 16 L 19 12 C 19 10.346 17.654 9 16 9 L 7 9 z

这是几个高质量的图标资源网站
1、Iconfont-阿里巴巴矢量图标库http://www.iconfont.cn
2、Noun Project
3、Iconninja
4、icons8
5、IconPark
6、Flat Icon
7、Pictogram2

设置图标默认颜色

iconStyle: {
	            borderColor: "#be0000",
	          }//图标默认颜色

设置图标选中颜色

emphasis: {//设置图标hover颜色,选中后图标变色
	            iconStyle: {
	              borderColor: "#2400f1",
	            }
	          }

显示结果
在这里插入图片描述

最后是图标大小设置

itemSize: 20

以下是完整代码


<!DOCTYPE html>
<html  style="height: 100%">
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
<body style="height: 100%; margin: 0">
  <div id="container" style="height: 100%"></div>

  <script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  <script type="text/javascript">
    var dom = document.getElementById('container');
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};
    
    var option;

    option = {
  title: {
    text: 'Temperature'
  },
  tooltip: {
    trigger: 'axis'
  },
  legend: {},
  toolbox: {
    show: true,
	itemSize: 20,
	iconStyle: {//想全部变色就放在外边,想部分按钮就放在方法里
	            borderColor: "#be0000",
	          },//图标默认颜色
	emphasis: {//设置图标hover颜色,选中后图标变色
	            iconStyle: {
	              borderColor: "#2400f1",
	            }
	          },
    feature: {
      myTool1: {
                show: true,
				
                title: '自定义扩展方法1',
                icon: "M 11.5 1 A 3.5 3.5 0 0 0 8 4.5 A 3.5 3.5 0 0 0 11.5 8 A 3.5 3.5 0 0 0 15 4.5 A 3.5 3.5 0 0 0 11.5 1 z M 7 9 C 5.346 9 4 10.346 4 12 L 4 16 L 7.2304688 16 C 8.4124688 19.877 11.497 22 16 22 C 16.96 22 18.361266 21.936531 19.447266 21.394531 L 21.498047 20.369141 L 19.351562 19.5625 C 16.854563 18.6265 16.220266 17.081 16.072266 16 L 19 16 L 19 12 C 19 10.346 17.654 9 16 9 L 7 9 z",
                onclick: function (){
                    alert('myToolHandler1')
                }
            },
            myTool2: {
                show: true,
                title: '自定义扩展方法',
                icon: 'M 11.5 1 A 3.5 3.5 0 0 0 8 4.5 A 3.5 3.5 0 0 0 11.5 8 A 3.5 3.5 0 0 0 15 4.5 A 3.5 3.5 0 0 0 11.5 1 z M 7 9 C 5.346 9 4 10.346 4 12 L 4 16 L 7.2304688 16 C 8.4124688 19.877 11.497 22 16 22 C 16.96 22 18.361266 21.936531 19.447266 21.394531 L 21.498047 20.369141 L 19.351562 19.5625 C 16.854563 18.6265 16.220266 17.081 16.072266 16 L 19 16 L 19 12 C 19 10.346 17.654 9 16 9 L 7 9 z',
                onclick: function (){
                    alert('myToolHandler2')
                }
            },
      dataView: { readOnly: false },
      magicType: { type: ['line', 'bar'] }
    }
  },
  xAxis: {
    type: 'category',
    boundaryGap: false,
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value',
    axisLabel: {
      formatter: '{value} °C'
    }
  },
  series: [
    {
      name: '1111',
      type: 'line',
      data: [1, -2, 2, 5, 3, 2, 0],
 
    }
  ]
};
    if (option && typeof option === 'object') {
      myChart.setOption(option);
    }

    window.addEventListener('resize', myChart.resize);
  </script>
</body>
</html>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
echarts库是一款非常强大的数据可视化工具,自带的toolbox组件使得用户可以对图表进行自定义操作,例如数据区域缩放、数据视图、导出图片、切换图表、还原视图、保存为图片等等。但是,由于每个用户的需求不同,很多时候默认提供的toolbox并不能完全满足用户的需求。因此,echarts还提供了toolbox自定义功能,允许用户根据自己的需求自定义按钮。 toolbox自定义实现方式可以分为两种:一种是基于echarts官方提供的接口进行开发;另一种是通过echarts扩展开发进行实现。其中,基于echarts官方提供的接口进行开发,可以直接利用echarts API提供的toolbox组件相关接口进行开发。通过这种方式,可以定义需要的按钮,并添加对应的回调函数,以实现自定义的操作。 相比于上述方法,另一种实现方式更加自由灵活。通过继承echarts的全局echarts.registerAction函数,可以自定义需要使用的工具函数,并在toolbox组件中添加需要的按钮即可。通过这种方式,可以定义各种不同的按钮,并自定义其样式和动作。同时,这种方式也可以更好地解决echartstoolbox样式兼容性问题,可以更加方便地实现自定义要求。 无论是哪种实现方式,都需要对echarts API有一定的了解才能顺利进行开发。此外,在进行toolbox自定义时,还需要考虑到用户体验和可用性等因素,从而创建出易用性更高的自定义toolbox工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值