Лучший способ сделать это - использовать синтаксис списка, add_series()
а не A1:C8
синтаксис диапазона. Например:
import pandas as pd
# Create a Pandas dataframe from some data.
df_store = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
df_storename = 'My Storename'
writer = pd.ExcelWriter('payroll.xlsx', engine='xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df_store.to_excel(writer, sheet_name=df_storename)
workbook = writer.book
worksheet1 = writer.sheets[df_storename]
worksheet2 = workbook.add_worksheet('One-on-One')
chart = workbook.add_chart({'type': 'column'})
chart.add_series({'name': 'Service Sales',
'categories': [df_storename, 1, 0, 7, 0],
'values': [df_storename, 1, 1, 7, 1]})
worksheet2.insert_chart('D2', chart)
writer.save()
Вывод:
Таким образом вы можете установить диапазон ячеек, которые будут отображаться с использованием размера блока данных. Для более реалистичного примера см. Примеры диаграмм XlsxWriter Pandas .