Python 3.x 从散点图中删除标题

Python 3.x 从散点图中删除标题,python-3.x,openpyxl,Python 3.x,Openpyxl,我想知道如何能够为一系列数据分配一个名称(使用散点图),而不必获得与图表标题相同的序列名称。我想得到的只是作为传奇系列的名称,而不是图表标题在所有 我意识到autoTitleDeleted的值必须为1 因此,查阅文档我发现“chartContainer”是实现上述选项的类。因此,我导入该类并将其应用为下一个: from openpyxl import Workbook from openpyxl.chart import ( ScatterChart, Refer

我想知道如何能够为一系列数据分配一个名称(使用散点图),而不必获得与图表标题相同的序列名称。我想得到的只是作为传奇系列的名称,而不是图表标题在所有

我意识到
autoTitleDeleted
的值必须为1

因此,查阅文档我发现“chartContainer”是实现上述选项的类。因此,我导入该类并将其应用为下一个:

from openpyxl import Workbook
from openpyxl.chart import (
        ScatterChart,
        Reference,
        Series,
)
from openpyxl.chart.chartspace import ChartContainer

wb = Workbook()
ws = wb.active

rows = [
        ["Size", "Batch 1", "Batch 2"],
        [2, 40, 30],
        [3, 40, 25],
        [4, 50, 30],
        [5, 30, 25],
        [6, 25, 35],
        [7, 20, 40],
]

for row in rows:
    ws.append(row)    

chart2 = ScatterChart()

chart2.x_axis.title = "Size"
chart2.y_axis.title = "Percentage"

xvalues = Reference(ws, min_col = 1, min_row = 2, max_row = 7)
values = Reference(ws, min_col = 3, min_row = 1, max_row = 7)
series1 = Series(values, xvalues)
chart2.series.append(series1)

chart2 = ChartContainer(autoTitleDeleted = 1)

ws.add_chart(chart2, "J10")

wb.save("Ex1.xlsx")
然而,下一个错误出现了:

`运行文件('C:/Users/Administrador/Desktop/Pre-Try/Ex1/Ex1.py',wdir='C:/Users/Administrador/Desktop/Pre-Try/Ex1') 回溯(最近一次呼叫最后一次):

文件“”,第1行,在 运行文件('C:/Users/Administrador/Desktop/Pre-Try/Ex1/Ex1.py',wdir='C:/Users/Administrador/Desktop/Pre-Try/Ex1')

文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第827行,在运行文件中 execfile(文件名、命名空间)

文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\u kernels\customize\spydercustomize.py”,第110行,在execfile中 exec(编译(f.read(),文件名,'exec'),命名空间)

文件“C:/Users/Administrador/Desktop/Pre-Try/Ex1/Ex1.py”,第46行,在 wb.save(“Ex1.xlsx”)

文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\workbook\workbook.py”,第397行,保存 保存工作簿(自身,文件名)

保存工作簿中的文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\writer\excel.py”,第294行 writer.save()

文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\writer\excel.py”,第276行,保存 self.write_data()

文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\writer\excel.py”,第76行,在write\u数据中 自己写工作表()

文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\writer\excel.py”,第219行,在工作表中 自写图纸(ws.\U图纸)

文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\writer\excel.py”,第142行,在“写入”图形中 self.\u archive.writestr(drawing.path[1:],tostring(drawing.\u write())

文件“C:\ProgramData\Anaconda3\lib\site packages\openpyxl\drawing\spreadsheet\u drawing.py”,第296行,以书面形式 self.\u rels.append(rel)

UnboundLocalError:赋值前引用的局部变量“rel”`


我真的不理解这个错误。如果你能帮忙,我将不胜感激

chart2=ChartContainer(autoTitleDeleted=1)
这就是问题所在:您必须使用openpyxl图表对象,以便库能够管理对象之间的管道:图表是非常复杂的对象,我们试图隐藏一些您的想法是正确的复杂性-将值设置为True-但这不会像这样工作,因为
图表容器
不知道如何将自身添加到XLSX软件包


作为一种解决方法,使用空字符串创建标题可能是最简单的。否则,您可以提交一份PR,允许将
autoTitleDeleted
属性从chartContainers映射到图表,反之亦然。

您需要包含完整的错误回溯,尽管我认为这与您在这里所做的工作无关。感谢您@charlectlark的帮助。我用回溯法编辑了这个问题。希望这有助于了解问题所在。嗨,查理。谢谢你的回答。尽管如此,您所评论的解决方法并不能解决问题,因为“标题空间”仍然存在(尽管没有任何文字),因此绘图区域比它应该的小。有没有其他方法可以删除标题?没有,没有我所描述的对库进行更改。谢谢你的快速回答@Charile。是的,我看过你的其他选择。然而,我不确定我是否有足够的知识和经验去做那件事。。