有没有办法在datetime上使用yyyymmw格式进行打印?

2024-06-01 05:57:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些每周观察和记录的数据,我正试图用matplotlib绘制这些数据。我目前使用的是日期格式yyyymmw,其中w表示一个月中的一周(可以采用1到5之间的任何值)。每周从周二开始,周一结束,除非月底/月初将本周一分为二

我的问题是:是否有任何datetime格式支持这些类型的日期

下面是一个数据示例:

+ --------+-------+------+
|   week  | Sugar | Soy  |
+ --------+-------+------+
| 2019121 | 534.3 | 49.1 |
| 2019122 | 423.6 | 45.2 |
+ --------+-------+------+

Tags: 数据示例类型datetimematplotlib格式记录绘制
2条回答

一个小的更新,因为我已经能够克服这一点。正如@ImportanceOfBeingErnest所指出的,无法将此格式转换为日期时间格式。因此,我在每个星期的第一天使用datetime和日历进行转换。日历真的很有用。这是我的密码:

from datetime import datetime
import calendar
def transform_week_into_days(week): #week example: '2018031'
    week = str(week)
    year = week[:4]
    month = week[4:6]
    week = week[6]
    month_year = year+'-'+month
    calendar = calendar.monthcalendar(int(ano), int(mes))
    week_start = []
    for i in range(len(calendar)):
        for j in range(len(calendar[-1])):
            if calendar[i][j] != 0:
                day = str(month_year)+'-'+str(var[i][j])
                datetime_object = datetime.strptime(day, '%Y-%m-%d')
                if datetime_object.weekday() != 5 and datetime_object.weekday() != 6: #check if the first day of week is saturday or sunday
                    week_start.append(day)
                break
    return week_start[int(week)-1]

希望这能帮助任何需要帮助的人

您可以查看matplotlib的日期tickersformatters

本质上,给定一个Axes对象,比如ax,可以为轴设置定位器,然后设置格式化程序。 例如,您可以使用^{}标记每个星期一,并使用与"%y-%m-%W"关联的^{}实例将每个日期显示为yyyy-mm-w

相关问题 更多 >