Вот пример, который демонстрирует, что ось журнала работает с диаграммами XlsxWriter:
import xlsxwriter
workbook = xlsxwriter.Workbook('log_demo.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write_column('A1', [1, 10, 100, 1000])
chart = workbook.add_chart({'type': 'line'})
chart.add_series({'values': '=Sheet1!$A$1:$A$4'})
chart.set_y_axis({'log_base': 10})
worksheet.insert_chart('C2', chart)
workbook.close()
Выход:
Как вы можете видеть, ось Y имеет логарифмический масштаб.
Однако здесь есть ошибка Excel. Оси X для большинства типов диаграмм (кроме Scatter) называются осями категорий. Они могут иметь числовые значения, но они не являются числовыми, как правило, это просто имена категорий. Этот тип оси не поддерживает масштабирование логов (или много других функций). Дополнительные сведения см. В разделе Значения диаграммы и оси категорий документации XlsxWriter.
Если вы хотите получить ось журнала X, вам, вероятно, придется использовать диаграмму типа Scatter.
Обновление
Существует также проблема с вашим кодом. XlsxWriter требует, чтобы все свойства оси устанавливались за один раз, вместо многократных вызовов на set_x_axis()
. Как это:
chart1.set_x_axis({'log_base': 10,
'min': 1000,
'max': 100000,
'interval_tick': 100,
'name': 'x axis'})