Лучший способ сделать это - использовать синтаксис списка в 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()
Выход:
![enter image description here](https://i.stack.imgur.com/rwDJv.png)
Таким образом, вы можете установить диапазон ячеек, которые будут отображаться, используя размер кадра данных. Для более реалистичного примера см. Примеры диаграмм XlsxWriter Pandas .