Как установить максимальную границу, используя функцию set_y2_axis с XLSXWRITER? - PullRequest
1 голос
/ 28 января 2020

Кажется, что в настоящее время невозможно установить максимальную границу, используя функцию set_y2_axis() с XLSXWriter. Он работает правильно для set_y_axis().

. В приведенном ниже примере ось Y будет ограничена до 3,5, но ось Y не будет ограничена до 100:

column_chart.set_y_axis({'name': 'Frequency (%)',
                         'max': 3.5,
                         })
column_chart.set_y2_axis({'name': 'Cummulative Frequency (%)',
                          'max': 100.0,
                          })

В официальной документации указано, что для set_y2_axis: "Свойства, которые можно установить, такие же, как и для set_x_axis, см. Выше." И значения max и min приведены не поддерживается Excel для осей категорий, таких как ось x в линейном графике ( соответствующая проблема на github ). Тем не менее, можно установить максимальную границу для вторичной оси Y в Excel ...

enter image description here

Не могли бы вы сказать мне, что я пропустил или что я делаю не так?

Заранее большое спасибо,

Romain

РЕДАКТИРОВАТЬ:

Моя ошибка была в том, что я применял set_y2_axis() на неправильном графике. Я подал заявку на «окончательный» комбинированный column_chart, но он должен быть применен на line_chart до вызова combine().

1 Ответ

2 голосов
/ 28 января 2020

Да, это возможно. Вот простой рабочий пример, который устанавливает максимум для вторичной оси равным 10:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart_secondary_axis.xlsx')
worksheet = workbook.add_worksheet()

# Write some data.
data = [
    [2, 3, 4, 5, 6, 7],
    [10, 40, 50, 20, 10, 50],
]

worksheet.write_column('A1', data[0])
worksheet.write_column('B1', data[1])

# Create the chart.
chart = workbook.add_chart({'type': 'line'})

chart.add_series({
    'values': '=Sheet1!$A$1:$A$6',
    'y2_axis': 1,
})

chart.add_series({
    'values': '=Sheet1!$B$1:$B$6',

})

chart.set_y2_axis({'max': 10})

worksheet.insert_chart('D2', chart)

workbook.close()

Выход:

enter image description here

...