Python → XlsxWriter → 图表 → 格式化尝试(水平)日期轴常量覆盖

问题描述 投票:0回答:1

在Python中,使用XlsxWriter,我创建了一个线性图,其中水平轴是日期(我验证了,在基础数据中,该列确实是数字/日期)。

生成的图表将日期设置为相隔 11-14 个周期(天),当我尝试各种方法(包括“date_axis”:True)将轴格式化为仅显示每个月的第一天时,它被忽略/覆盖。

日期列是每天,429行。看图片。

怎样才能覆盖覆盖?...

谢谢

python xlsxwriter
1个回答
0
投票

你在哪里逐行阅读XLSX, 您只能选择那些行, 您想在图表中使用的内容。

例如:

import xlsxwriter
import openpyxl


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

data = [
    ['Дата', 'Значение'],
    ['01.01.2022', 100],
    ['02.01.2022', 200],
    ['01.02.2022', 150],
    ['03.02.2022', 180],
    ['01.03.2022', 120],
    ['04.03.2022', 220]
]


date_format = workbook.add_format({'num_format': 'dd.mm.yyyy'})

# write to Excel
for row_num, row_data in enumerate(data):
    for col_num, cell_data in enumerate(row_data):
        if col_num == 0:
            worksheet.write(row_num, col_num, cell_data, date_format)
        else:
            worksheet.write(row_num, col_num, cell_data)

workbook.close()

# read Excel
workbook_read = openpyxl.load_workbook('data.xlsx')
worksheet_read = workbook_read.active

data_for_chart = []

# selected data
for row in worksheet_read.iter_rows(min_row=2, values_only=True):
    date_parts = row[0].split('.')
    if int(date_parts[0]) == 1:
        data_for_chart.append([row[0], row[1]])

print(data_for_chart)

我只是想确保如果你的脚本没有足够的智能,
你不要让他猜你想要得到什么。
如果您只对每个月的第一天感兴趣,
然后根据特别选择的数据构建图表。

© www.soinside.com 2019 - 2024. All rights reserved.