实现目标:legend和柱状图结合。效果图:

从上图中可以看出,不同legend对应的文字的颜色都是白色,但是文字描边的颜色却是和图例的颜色是相同的,echarts的配置文件如下:

显然,textBorderColor并不支持函数调用,因此 ,为实现动态颜色描边的功能,需要使用另外的方法。

这里结合使用legend.textStyle.rich和legend.formatter,legend的配置如下:

legend: {data: [],type: 'scroll',orient: 'vertical',left: '3%',textStyle: {color: '#ffffff',textBorderWidth: 2,rich: {}},formatter: function (name){let index = LEGEND.indexOf(name);let border = `color${index}`;return `{${border}|${name}}`;},
}

动态为rich填充数据:

    //使用rich,来动态展示legend.title 以不同的颜色描边for (let i = 0;i < COLOR_LIST.length;i++){let key = 'color' + i;option.legend.textStyle.rich[key] = {textBorderColor: COLOR_LIST[i]}}

令颜色存储在COLOR_LIST数组中,遍历COLOR_LIST数组,那么rich中的数据大致如下:

rich :{color0: {textBorderColor: '#2c7be5'},//...
}

至此,rich中配置了不同颜色描边的富文本样式,那么再配合formatter:

 formatter: function (name){let index = LEGEND.indexOf(name);let border = `color${index}`;return `{${border}|${name}}`;},

通过判断传递的name在legend.data中的索引,构造key,得到{${border}|${name}},通过反引号,假设index=0,那么js会解释为{color0|电子器件制造}。

注:textBorderWidth必须要设置一个值,否则会出现问题。

echarts:实现legend中的textBorderColor动态改变问题相关推荐

  1. C#中使用代码动态改变配置文件信息

    static void Main(string[] args){XmlDocument xDoc = new XmlDocument();xDoc.Load("../../App.confi ...

  2. android顶部按钮图片,安卓动态改变button顶部图片即drawableTop属性

    比如一个按钮在layout文件中设置了为灰色的图片资源 android:id="@+id/polling_end" android:layout_width="0dp&q ...

  3. Android 根据坐标点动态改变View的位置

    在开发项目中,需要动态改变View的位置,其实只需要用api的 layout()方法即可,不断改变坐标值,通过onTouchEvent()来获取点的坐标点,然后计算出View的宽和高就可以了 代码如下 ...

  4. 点击echarts柱状图动态改变数据项颜色样式

    首先附上参考文章连接:https://blog.csdn.net/weixin_42870683/article/details/103528254添加链接描述 今天来实现点击echarts柱状图,动 ...

  5. C# 设计时动态改变实体在PropertyGrid中显示出来的属性

    方法一: /// <summary>/// 实体属性处理/// </summary>public class PropertyHandle{#region 反射控制只读.可见属 ...

  6. 在vue中,Echarts雷达图中indicator的点击事件,不能改变data中的值的解决方法

    在vue中,Echarts雷达图中indicator的点击事件,不能改变data中的值的解决方法 参考文章: (1)在vue中,Echarts雷达图中indicator的点击事件,不能改变data中的 ...

  7. uniapp、vue,vuex中state改变,getters不动态改变的完美解决方案!

    uniapp.vue,vuex中state改变,getters不动态改变的完美解决方案! 参考文章: (1)uniapp.vue,vuex中state改变,getters不动态改变的完美解决方案! ( ...

  8. c语言case的值能动态修改吗,java中的switch case语句中,case所对应的数目是不确定的,能否动态改变case...

    现在方法中传入的menuList的数目是不确定的,每个menuList.get(i),都对应一个runnableList.get(i).现在需要根据menuList.size()动态改变case的数目 ...

  9. VUE中动态改变字体大小

    VUE中动态改变字体大小 父组件将自己的数据传递送给子组件展示,子组件监听click操作,emit发送出去,父组件监听通过emit发送的信息,改变控制字体大小的postFontSize,通过style ...

  10. echarts动态改变series,数据重合问题

    echarts动态改变series值,来动态更新图表,发现数据有重合问题 产生原因是: Echarts会默认将更新的数据和之前数据合并 解决办法: setOption时设置第二个参数为true myC ...

最新文章

  1. k8命令,pod的启动流程与资源文件书写,k8s集群调度
  2. 最小硬盘实现单原子信息存储 超现有硬盘500倍
  3. 《Python Cookbook 3rd》笔记(5.9):读取二进制数据到可变缓冲区中
  4. java h5 交互 传数组, JS数组/对象的值为什么变了?你需要深入理解对象的值传递...
  5. 使用truffle 创建代币合约 使用ganache部署私有链 以及使用Atom 进行合约代码开发
  6. 毕业论文中的调查问卷怎样设计以及分析?
  7. 高通驱动程序开发参考(一)
  8. 传统方法车道线标注及相关知识
  9. Python小数整数输出
  10. 读书会招募 | 一起来读《蛤蟆先生去看心理医生》吧
  11. postgres关键字、常量和数据类型
  12. Docker - 札记 - Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon runn
  13. 音乐能力与计算机能力结合,作曲与作曲技术理论专业(计算机作曲与音乐制作)培养方案...
  14. 修改html2canvas生成图片的dpi
  15. 学简单python好学吗_python好学吗
  16. 老主板怎么接机箱前面的USB和mic
  17. 软件测试中的“保险项目”讲解
  18. 跨境电商必知的交叉销售和追加销售:2022终极指南
  19. IUV“经世杯”option3X
  20. 各大电商API详细数据获取

热门文章

  1. 2022-2028全球粉尘检测仪行业调研及趋势分析报告
  2. JavaWeb 登陆界面
  3. netbeans 8 java自动提示_Netbeans 代码提示
  4. 【SDCC 2016现场】数据库/大数据技术实战专场实录(下)
  5. warning: control reaches end of non-void function [-Wreturn-type]
  6. H3CNE中单臂路由实验
  7. C解决duplicate symbol
  8. 计算机中时间服务是哪个,电脑时间不对 Windows时间服务未运行的解决办法
  9. 微信ipad协议简述
  10. Explain执行器名词解释