Python 使用openpyxl(透明度)创建复杂面积图

Python 使用openpyxl(透明度)创建复杂面积图,python,openpyxl,Python,Openpyxl,我正在尝试使用openpyxl创建一个面积图。我希望面积图看起来比基本的excel图表更复杂。这是我的数据 资料 渴望的 做 我在文档中发现了这一点,但不确定如何实施: openpyxl.drawing.effect.AlphaBiLevelEffect 我想给面积图增加透明度,让它反映我想要的输出。 任何建议都将受到欢迎透明工作,代码中的源代码链接如下: 从openpyxl导入加载\u工作簿 从openpyxl.chart导入条形图、参考、系列、散点图、折线图、股票图、面积图、

我正在尝试使用openpyxl创建一个面积图。我希望面积图看起来比基本的excel图表更复杂。这是我的数据

资料

渴望的

我在文档中发现了这一点,但不确定如何实施:

     openpyxl.drawing.effect.AlphaBiLevelEffect
我想给面积图增加透明度,让它反映我想要的输出。
任何建议都将受到欢迎

透明工作,代码中的源代码链接如下:

从openpyxl导入加载\u工作簿
从openpyxl.chart导入条形图、参考、系列、散点图、折线图、股票图、面积图、面积图3D
从复制导入deepcopy
path=“wb1.xlsx”
wb_obj=加载_工作簿(路径)
表_obj=wb_obj.active
c1=面积图()
c1.title=“面积图”
c1.y_axis.title=“成本”
c1.x_axis.title=“日期”
c1.x_轴编号_格式='mm/dd/yy'
c1.x_axis.majortime单位=“天”
c1.style=39
数据=参考(图纸obj,最小列=2,最小行=2,最大列=3,最大行=13)
c1.添加数据(数据,标题来自数据=真)
日期=参考(图纸对象,最小列=1,最小行=2,最大行=13)
c1.设置类别(日期)
##########开始插入
####开始自定义类
#### https://stackoverflow.com/a/51006976/15161640
从openpyxl.drawing.colors导入颜色选择
从openpyxl.descriptor导入类型
从openpyxl.descriptors.serialisable导入serialisable
从openpyxl.descriptors.nested导入嵌套整数
从openpyxl.xml.constants导入图形
类MyRGBColor(可序列化):
标记名='srgbClr'
名称空间=绘图
val=Typed(预期类型=str)
alpha=嵌套整数(允许\无=真)
__元素(α)
定义初始值(self,val,alpha=None):
self.val=val
self.alpha=alpha
类别选择(颜色选择):
srgbClr=Typed(预期类型为MyRGBColor,允许类型为True)
####结束自定义类
#颜色列表-添加更多以处理更多系列
颜色=[“0000ff”,“ffa500”]
color_gen=(颜色中c代表c)
#为整个系列设定一个模式
对于c1系列中的系列:
clr=下一个(颜色生成)
aclr=MyColorChoice(srgbClr=MyRGBColor(clr,alpha=50000))
series.graphicalProperties.solidFill=aclr
series.GraphicalProperty.line.solidFill=clr
##########端部嵌件
表格对象添加图表(c1,“I2”)
wb_对象保存(“sample.xlsx”)

我通过以下操作实现了透明度:,但我还无法实现gradientFillProperties。@MarkH,请发布您的答案/回复。透明度是目标,不一定是梯度。让我试试@markH-你知道我最新帖子的答案吗?图表标题和轴标签不适合我,即使有教程中的示例。我正在使用OpenPYXL3.0.7和LibreOffice 6.4.6.2。我以后可能会研究这个问题。事实上,它们在谷歌硬盘上看起来不错,所以LibreOffice肯定是个问题。
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference, Series, ScatterChart, LineChart, StockChart, AreaChart, AreaChart3D



path = "C:/Users/thud/wb1.xlsx"
wb_obj = load_workbook(path)
sheet_obj = wb_obj.active



c1 = AreaChart()
c1.title = "Area Chart"
c1.y_axis.title = "Cost"
c1.x_axis.title = "Date"
c1.x_axis.number_format = 'mm/dd/yy'
c1.x_axis.majorTimeUnit = "days"
c1 = deepcopy(c1)
c1.style = 39


data = Reference(sheet_obj, min_col=2, min_row=2, max_col=3, max_row=13)
c1.add_data(data, titles_from_data=True)

dates = Reference(sheet_obj, min_col=1, min_row=2, max_row=13)
c1.set_categories(dates)


sheet_obj.add_chart(c1, "I2")
wb_obj.save("sample.xlsx")
     openpyxl.drawing.effect.AlphaBiLevelEffect