openpyxl修改图表中纯色填充的透明度和颜色
如果只修改颜色的话,直接使用下面的代码即可:
from openpyxl.drawing.fill import ColorChoice
from openpyxl.drawing.line import LineProperties'''将折线图的第一个系列的颜色设置为5FBEBF,宽度为2磅(w=25400)'''
chart.ser[0].spPr.ln = LineProperties(w=25400, solidFill = ColorChoice(srgbClr='5FBEBF'))
修改透明度就比较复杂一些,到写文章时(2021年7月),笔者还没有找到openpyxl官方的直接修改透明度的方法,但有幸找到下面的文章:
https://stackoverflow.com/questions/42950245/set-transparency-alpha-of-area-chart-openpyxl
参考大佬的做法(做了一点小修改),可以通过自定义类来改变纯色填充(solidFill)的透明度和颜色,对于面积图或者数量比较多的折线图尤为有效。
首先在代码的import部分粘贴以下内容:
from openpyxl.descriptors import Typed
from openpyxl.descriptors.serialisable import Serialisable
from openpyxl.descriptors.nested import NestedInteger
from openpyxl.xml.constants import DRAWING_NSclass MyRGBColor(Serialisable):tagname = 'srgbClr'namespace = DRAWING_NSval = Typed(expected_type = str)alpha = NestedInteger(allow_none=True)__elements__ = ('alpha', )def __init__(self, val, alpha=None):self.val = valself.alpha = alphaclass MyColorChoice(ColorChoice):srgbClr = Typed(expected_type=MyRGBColor, allow_none=True)
然后就可以开始修改透明度和颜色了,假定你已经生成了一个面积图,命名为chart,那么可以使用下面的代码去修改透明度与颜色:
from openpyxl.drawing.fill import ColorChoice
from openpyxl.drawing.line import LineProperties'''
下面这行中ser[0]是面积图(折线图同理)第一个系列的颜色与透明度
修改线条部分(ln)的颜色,宽度w设为25400即2磅
其中的'5FBEBF'即颜色的十六进制代码,可以自行用其他颜色代码替换,不了解的同学可以百度颜色转换器
alpha即【不透明度】(1000倍),0是完全透明,100000是完全不透明
'''
chart.ser[0].spPr.ln = LineProperties(w=25400, solidFill = MyColorChoice(srgbClr=MyRGBColor('5FBEBF', alpha=50000))'''
然后修改面积图的颜色与透明度'''
chart.ser[0].spPr.solidFill = MyColorChoice(srgbClr=MyRGBColor('5FBEBF', alpha=50000))'''最后才是add_chart'''
ws.add_chart(chart, 'A1')
其余图表类型的修改方法是一样的,就是在solidFill中用MyColorChoice去替换原生的ColorChoice类,从而实现修改透明度。(ColorChoice可以直接改颜色,但不能修改透明度)
openpyxl修改图表中纯色填充的透明度和颜色相关推荐
- openpyxl修改图表标题字体和字号
openpyxl的一个坑在于,修改标题的字体字号时,不能直接套用修改坐标轴字体的方法,但官方文档又讲的很少,只能靠自己摸索(坑). 笔者找到的具体方法见代码: from openpyxl import ...
- Qt修改QSS中的qlineargradient属性,实现颜色渐变
程序如下: 运行截图如下: 动态运行图如下: 原理很简单,修改QSS中的qlineargradient属性即可: 源码如下: widget.h #ifndef WIDGET_H #define WID ...
- 修改 Workshop 中 text box 输入内容的颜色
Requirement: Change the text box text color to grey as well. Description: Workshop 应用的 JSP 页面使用的是 ne ...
- form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色
一.别人怎么做 来源 http://stackoverflow.com/questions/3078081/setting-global-styles-for-views-in-android Act ...
- android preference-headers 字体颜色,android 批改preference中view属性(title,summary字体颜色等)...
当前位置:我的异常网» Android » android 批改preference中view属性(title,summary字 android 批改preference中view属性(title,s ...
- grafana在图表中修改metric的名称
1.当遇到想在图表中metric的名称比较抽象,不利于展示的问题时,如果metric的类型比较少,可以使用sql中的if语句重命名对应的metric,如下所示: SELECTUNIX_TIMESTAM ...
- 修改excel图表中的“系列一”
修改excel图表中的"系列一" 觉得有用的话,欢迎一起讨论相互学习~ 方法与步骤 设置好图表之后,右键点击图表→"选择数据(源)",在系列一.系列二的地方点击 ...
- 使用pandas处理excel,并使用Openpyxl修改单元格格式
使用pandas处理excel,并使用Openpyxl修改单元格格式 使用pandas处理excel,并使用Openpyxl修改单元格格式 需求 处理基本流程 查询资料过程 1.读取数据, 2.指标的 ...
- Python自动化办公:openpyxl绘制图表
在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家分享了openpyxl的基础和进阶教程: Python自动化办公:openpyxl教程(基础) Python自动化 ...
最新文章
- Datawhale Ring限量100份来了!
- python list合并_python中如何合并两个列表
- [Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题...
- wall poj 1113
- 谷歌能否赶上「元宇宙」这趟快车?
- 基础线性规划实现(matlab,lingo)
- 信息学奥赛一本通(1005:地球人口承载力估计)
- 领域驱动设计DDD之读书笔记
- mysql 双主 脑裂_MySQL 高可用性keepalived+mysql双主
- Eclipse — 如何导入MySQL驱动
- 【Selenium2】【HTMLTestRunner】
- mac配置java环境
- 英语4级的分数如何计算机,英语四级的分数是怎么计算的?
- 磁盘分区:系统C盘空间不足怎么办?
- 解决:浏览器下载的Excel文件显示“文件已损坏,无法打开”
- 【好记性不如烂笔头】IO之深入理解同步、异步、阻塞、非阻塞
- 计算机主板定位孔尺寸,775针主板上四个 CPU散热器固定孔 的孔距 分别是多少...
- 博图sodt定时器的用法_西门子博图定时器指令说明
- 截至2021年10月29日,安卓系统版本和Api Level对照表
- vant 框架使用方式H5
热门文章
- 下一代无线局域网(802.11n) 第4章 互操作性
- 基于神经网络和小波分析的电子设备故障诊断平台介绍
- 明日之后1.0(完整版)
- 一台电脑接两个显示器,双屏显示 安装双显示器 电脑后面有两个VGA接口 干什么用的 一台主机两个显示 器怎么连接 HDMI转VGA转换器
- 图片放大后画质变模糊?教你一招无损放大图片
- Powershell Excel Module
- 彻底删除mysql5.1_MySQL5.1安装与卸载教程
- 分割为mesh之后的地形shader编写——2
- 双移线驾驶员模型,多项式双移线模拟 采用多项式搭建双移线期望路径,基于郭孔辉单点预瞄理论,搭建双移线simulink驾驶员模型
- hd2 刷android