python - 如何使用 openpyxl 设置图表区域的图形属性

标签 python python-3.x charts openpyxl

我想更改 Chart_area 的背景颜色并删除所有边框。关于背景颜色,我尝试过建议的解决方案:How to set Background Color of Plot Area of Chart using openpyxl但此解决方案不适用于任何图表,即 BarChart、AreaChart、LineChart、ScatterChart、RadarChart 等...我尝试了两个 openpyxl 版本:2.4.7、2.4.9。没有成功。

# setup the chart
chart = LineChart()
# test to remove border line 
*****************************************************
chart.graphical_properties = 
GraphicalProperties(ln=LineProperties(noFill=True))
chart.height = 9
chart.width = 13.4
props = GraphicalProperties(solidFill="f2f2f2")

# setup and append the first series
list_names = ['Fund', 'Market', 'Benchmark']
data = Reference(ws2, min_col=2, min_row=1, max_col=n + 1, max_row=p + 
1)

chart.x_axis.number_format = 'mmm yy'
chart.x_axis.majorTimeUnit = "months"
chart.add_data(data, titles_from_data=True)
dates = Reference(ws2, min_col=1, min_row=2, max_col=1, max_row=1 + p)
chart.set_categories(dates)
# Style the lines
chart.series[0].graphicalProperties.line.solidFill = "7E3F00"
chart.series[1].graphicalProperties.line.solidFill = "45788C"
chart.series[2].graphicalProperties.line.solidFill = "8BADD9"
chart.plot_area.graphicalProperties = props
# test to change background color 
*****************************************************
chart.graphical_properties = props
ws1.add_chart(chart, "B14") 

我还尝试删除图表区域的边框。我找到了这篇文章:openpyxl - Ability to remove border from charts? 。但我不明白如何处理修改库。我有点惊讶没有更简单的方法。

非常感谢您的帮助。

最佳答案

此过程可能有助于指导寻找答案。

  1. 打开一个新的 Excel 电子表格并使用以下命令创建感兴趣的图表 默认设置。用文件名保存 “default-chart-saved-by-excel.xlsx”。
  2. 现在通过将背景颜色更改为紫色(十六进制 代码“AA00AA”)。用文件名保存 “redBG-chart-saved-by-excel.xlsx”并关闭 Excel。
  3. 使用 zip 程序(7zip 或类似程序)打开默认的 Excel 文件 并将 xl>charts>chart1.xml 文件提取到您的工作中 文件夹。将其重命名为“default-chart-saved-by-excel.xml” 重复 “redBG”案例。
  4. 使用所选的 XML 编辑器(某些 Web 浏览器运行良好)并查找具有以下内容的 xml 代码块: 通过搜索紫色十六进制代码“AA00AA”进行更改该 block 是您希望 openpyxl 定位的目标。

关于python - 如何使用 openpyxl 设置图表区域的图形属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48305158/

相关文章:

python - eval 列表理解失败

python - 在 numpy 数组中一次访问 block

python - Python中如何从 'if'语句继续到 'elif'?

javascript - 在谷歌图表蜡烛中以短格式显示总数

javascript - 删除 Google 日历图表上的色轴图例

python - 无法在Python中使用youtube API v3下载视频字幕

python - 如何创建新的 Set Redis?

python - 获取 xpath() 以返回空值

python - 在 Python 3 中使用套接字获取 400 Bad Request 错误

c# - 图表控件数据系列