我正在使用 Xlsxwriter 在单个工作表中绘制多个图表。问题是,当我调用函数添加图表时,对于不同的数据集,它会覆盖以前的 xlsx 并仅绘制最新的图表。这是我的主要程序:
# Write some data to add to plot on the chart.
data = [
[51, 62, 33, 14, 95],
[52, 64, 36, 18, 10],
[53, 66, 39, 12, 15],
]
meas_num = 1
tc.power_chart_excel(data,meas_num)
这是函数:
def power_chart_excel(self, data, meas_num):
workbook = xlsxwriter.Workbook('C:/Amitra/chart.xlsx')
worksheet = workbook.add_worksheet()
# Create a new Chart object.
chart = workbook.add_chart({'type': 'column'})
---- #Other chart commands
#Writing data to different columns for different charts
worksheet.write_column(wr_col_num_1 + '1', data[0])
worksheet.write_column(wr_col_num_2 + '1', data[1])
worksheet.write_column(wr_col_num_3 + '1', data[2])
#worksheet.write_column(wr_col_num_4 + '1', data[3])
#worksheet.write_column(wr_col_num_5 + '1', data[4])
# Configure the chart. In simplest case we add one or more data series.
#chart.add_series({'values': '=Sheet1!$A$1:$A$5'})
chart.add_series({'values': '=Sheet1!$' + wr_col_num_1 + '$1:$' + wr_col_num_1 + '$5'})
chart.add_series({'values': '=Sheet1!$' + wr_col_num_2 + '$1:$' + wr_col_num_2 + '$5'})
chart.add_series({'values': '=Sheet1!$' + wr_col_num_3 + '$1:$' + wr_col_num_3 + '$5'})
chart.add_series({'values': '=Sheet1!$' + wr_col_num_4 + '$1:$' + wr_col_num_4 + '$5'})
chart.add_series({'values': '=Sheet1!$' + wr_col_num_5 + '$1:$' + wr_col_num_5 + '$5'})
worksheet.insert_chart(chart_position, chart)
workbook.close()
如何多次调用该函数在同一张纸上绘制多个图表而不删除前一个图表?我已经测试过,如果我不调用函数并打开图表一次并关闭一次,则会引入多个图表。但我不知道如何使用这个函数做同样的事情。
最佳答案
您的工作簿对象代表一个新的 Excel 文件。 Xlsxwriter 无法附加到现有的 xlsx 文件。因此,您应该保持工作簿打开并在同一工作簿中添加新图表。您的代码可能如下所示:
workbook = xlsxwriter.Workbook('C:/Amitra/chart.xlsx')
worksheet = workbook.add_worksheet()
for d in my_data: # or a similar loop depending on your program
tc.power_chart_excel(worksheet, d, meas_num)
def power_chart_excel(self, worksheet, data, meas_num):
# Create a new Chart object.
chart = workbook.add_chart({'type': 'column'})
# rest of the code goes here
worksheet.insert_chart(chart_position, chart)
关于python - 无法通过调用函数使用Xlsxwriter绘制多个图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30210239/