В Python XlsxWriter Как установить ось X с датами в качестве текстовой оси?

У меня есть некоторые еженедельные данные временных рядов, которые я хочу построить. Я хочу, чтобы даты во временном ряду отображались на графике, т.е. я не хочу, чтобы Excel выполнял интерполяцию с пустыми точками для дней между днями во временном ряду.

Я пытался явно установить text_axis на True и date_axis на False, но в итоге получил Автоматическую ось и пустые точки:

Автоматическая ось с данными о дате

Если я затем вручную установлю тип оси на Text, я получу то, что мне нужно:

введите здесь описание изображения

Это код, который создает график на первом снимке экрана:

import pandas as pd

# Create a Pandas series with a date index

data = pd.Series([1, 5, 7, 2, 6, 6],
                 index=pd.to_datetime(['2012-10-08',
                                       '2012-10-15',
                                       '2012-10-22',
                                       '2012-10-29',
                                       '2012-11-05',
                                       '2012-11-12']))

writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')

df = pd.DataFrame(data)

# Stick it in Excel

worksheet_name = 'test'

df.to_excel(writer, worksheet_name)

# Create a graph

workbook = writer.book
chart = workbook.add_chart({'type': 'column'})

chart.add_series({'values': '={worksheet_name}!$B$2:$B$7'.format(worksheet_name=worksheet_name),
                  'categories': '={worksheet_name}!$A$2:$A$7'.format(worksheet_name=worksheet_name)})

# Set the X axis to be a text axis

chart.set_x_axis({'name': 'Week', 'text_axis': True, 'date_axis': False})

# Stick the graph in Excel

sheets = [sheet for sheet in workbook.worksheets() if sheet.name == worksheet_name]
sheets[0].insert_chart('D2', chart)

# Make the date column wide enough for the date to be visible
sheets[0].set_column(0, 0, 20)

Любая идея, что я делаю неправильно?


person Chris Young    schedule 06.05.2015    source источник


Ответы (1)


Это было моим недостатком.

Был на старой версии XlsxWriter в моем VirtualEnv. Автор модуля Джон Макнамара исправил меня, и теперь он работает. Школьная ошибка с моей стороны!

 pip install --upgrade xlsxwriter
Downloading/unpacking xlsxwriter from https://pypi.python.org/packages/2.7/X/XlsxWriter/XlsxWriter-0.7.2-py2.py3-none-any.whl#md5=8dca87f0bd21708a0587017c14e5f453
  Downloading XlsxWriter-0.7.2-py2.py3-none-any.whl (133kB): 133kB downloaded
Installing collected packages: xlsxwriter
  Found existing installation: XlsxWriter 0.5.7
    Uninstalling XlsxWriter:
      Successfully uninstalled XlsxWriter
Successfully installed xlsxwriter
Cleaning up...
person Chris Young    schedule 06.05.2015