Диаграмма Python Xlsxwriter - PullRequest
       18

Диаграмма Python Xlsxwriter

2 голосов
/ 23 октября 2019

Я пытаюсь создать простой скрипт на python, который читает данные из файла .csv, форматирует данные в удобную для чтения компоновку, а затем либо записывает их в новый файл xlsx, либо добавляет в существующий файл xlsx, в зависимости отпользовательский ввод. Это все работает хорошо, и я пишу в новый файл, используя;

    with pd.ExcelWriter(file_path) as writer:
    df.to_excel(writer, sheet_name='Master')

Теперь я хочу добавить второй лист, который содержит диаграммы Excel из данных и расширил приведенный выше код до;

with pd.ExcelWriter(file_path) as writer:
    df.to_excel(writer, sheet_name='Master')
    book = writer.book
    sheet = writer.sheets['Master']
    chart_a = book.add_chart({'type': 'line'})
    chart_a.add_series({
        'categories': ['Master', 1, 0, trend_data_row, 0],
        'values': ['Master', 1, 1, trend_data_row, 1],
    })
    chart_a.set_x_axis({'name': 'time', 'position_axis': 'on_tick'})
    chart_a.set_y_axis({'name': 'value'})
    chart_a.set_legend({'position': 'Bottom'})
    sheet.insert_chart('A11', chart_a)
    writer.save()

Это добавляет диаграмму к основному листу, как и ожидалось, я не понимаю, как создать второй лист и вместо этого вставить туда диаграмму. Я попытался изменить sheet = writer.sheets на новое имя [Графики], но я думаю, что он ищет существующий лист с таким именем, а не создает его. Любая помощь действительно ценится.

1 Ответ

1 голос
/ 23 октября 2019

Я не понимаю, как создать второй лист и вставить туда диаграмму.

Вы можете сделать это так:

import pandas as pd


# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_chart.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Master')

# Get the xlsxwriter workbook object.
workbook  = writer.book

# Add a new worksheet.
worksheet = workbook.add_worksheet('Graphs')

# Create a chart object.
chart = workbook.add_chart({'type': 'column'})

# Configure the series of the chart from the dataframe data.
chart.add_series({'values':  ['Master', 1, 1, 7, 1]})

# Insert the chart into the worksheet.
worksheet.insert_chart('D2', chart)

# Close the Pandas Excel writer and output the Excel file.
writer.save()

Вывод: enter image description here

затем либо записывает его в новый файл xlsx, либо добавляет в существующий файл xlsx

XlsxWriter не может записать в существующий файлфайл.

...