Я пытаюсь создать линейный график с openpyxl. Две оси должны быть time
и battery voltage
. Создание диаграммы с openpyxl устанавливает одну ось как напряжение батареи, а другую как номер строки. Ручной выбор двух столбцов делает диаграмму правильно. При открытии листа, на котором создаются диаграммы, выдается ошибка: «Ссылка недействительна. Ссылки на заголовки, значения или размеры должны представлять собой одну ячейку, строку, столбец».
Я не понимаю, как линейный график может использовать только один столбец или строку. Что я тут не так делаю?
import os
import openpyxl
import re
from datetime import date, datetime, timedelta, time
os.chdir('C:\\Users\user\folder')
wb = openpyxl.load_workbook('file.xlsx')
wb.create_sheet('sheet2') # sheet where charts go
ws1 = wb['sheet1']
ws2 = wb['sheet2']
for cell in ws1['B:B']:
ws2.cell(row = cell.row, column = 1, value = cell.value)
for cell in ws1['D:D']:
ws2.cell(row = cell.row, column = 2, value = cell.value)
print('Creating charts...')
sheet = wb['sheet2'] # focus on sheet2 to pull data from/write chart to
refObj = openpyxl.chart.Reference(sheet, min_col=1, min_row=1, max_col=2, max_row=sheet.max_row)
seriesObj = openpyxl.chart.Series(refObj, title='Battery Voltage')
chartObj = openpyxl.chart.LineChart()
chartObj.title = 'Title'
chartObj.append(seriesObj)
sheet.add_chart(chartObj, 'C5')
wb.save('file.xlsx')
Вот что создает openpyxl:
И выбор столбцов A и B и создание линейной диаграммы в Excel делает диаграмму, которую я пытаюсь получить:
Мои аргументы для объекта LineChart неверны?
EDIT:
refObj = openpyxl.chart.Reference(sheet, min_col=2, min_row=2, max_col=2, max_row=sheet.max_row)
Правильно создает график, но устанавливает номер строки в качестве оси x. Я все еще пытаюсь определить время по оси X.