如何从 datetime64 上的 YYYY-MM-DD 转换为 MM-DD 和绘图提示
How can I convert from YYYY-MM-DD on datetime64 to MM-DD and plotting tips
我正在使用一个来自 COVID 的数据库。
我有 YYYY-MM-DD 格式的信息,我正在绘制条形图中的天数与案例数。
在我的图表中,天显示为月,但我想要一个轴,每 7 天。
我应该将我的 datetime64 格式转换为 MM-DD 并绘制我的图表吗?
这是我用来绘制的代码:
fig, ax = plt.subplots(figsize=(15,7))
ax.bar(x0, y0, color='green')
ax.set(xlabel = 'Data da notificação',
ylabel = 'Casos novos')
plt.setp(ax.get_xticklabels(), rotation = 45)
plt.show()
这是结果图:
这是我想要的图表:
示例数据:
https://docs.google.com/spreadsheets/d/1q4Njy0mGMtIeEABdaFrzNEMSavjpXtlUn8BM8z_QZBk/edit?usp=sharing
要像 MM-DD
一样格式化,您可以指定 fmt
参数,它接受用于格式化的 strftime 格式字符串,并且是 DateFormatter
.
的必需参数
您还可以为 DateLocator
指定一个 interval
参数。例如interval=7
定位器每 7 个日期放置一次刻度。
import datetime
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.read_csv("1.csv", delim_whitespace=True)
df['data'] = pd.to_datetime(df['data'], format='%m/%d/%Y')
fig, ax = plt.subplots(figsize=(10, 6))
ax.bar(df['data'], df['casosNovos'])
ax.xaxis.set_major_locator(mdates.DayLocator(interval=7))
ax.xaxis.set_major_formatter(mdates.DateFormatter(fmt='%m%d'))
ax.set_xlim(df['data'].min(), datetime.date(2020, 8, 21))
plt.setp(ax.get_xticklabels(), rotation = 45)
plt.show()
1.csv
长得像
regiao data casosNovos
Brasil 2/25/2020 0
Brasil 2/26/2020 1
Brasil 2/27/2020 0
Brasil 2/28/2020 0
Brasil 2/29/2020 1
Brasil 3/1/2020 0
Brasil 3/2/2020 0
Brasil 3/3/2020 0
我正在使用一个来自 COVID 的数据库。 我有 YYYY-MM-DD 格式的信息,我正在绘制条形图中的天数与案例数。 在我的图表中,天显示为月,但我想要一个轴,每 7 天。 我应该将我的 datetime64 格式转换为 MM-DD 并绘制我的图表吗?
这是我用来绘制的代码:
fig, ax = plt.subplots(figsize=(15,7))
ax.bar(x0, y0, color='green')
ax.set(xlabel = 'Data da notificação',
ylabel = 'Casos novos')
plt.setp(ax.get_xticklabels(), rotation = 45)
plt.show()
这是结果图:
这是我想要的图表:
示例数据: https://docs.google.com/spreadsheets/d/1q4Njy0mGMtIeEABdaFrzNEMSavjpXtlUn8BM8z_QZBk/edit?usp=sharing
要像 MM-DD
一样格式化,您可以指定 fmt
参数,它接受用于格式化的 strftime 格式字符串,并且是 DateFormatter
.
您还可以为 DateLocator
指定一个 interval
参数。例如interval=7
定位器每 7 个日期放置一次刻度。
import datetime
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.read_csv("1.csv", delim_whitespace=True)
df['data'] = pd.to_datetime(df['data'], format='%m/%d/%Y')
fig, ax = plt.subplots(figsize=(10, 6))
ax.bar(df['data'], df['casosNovos'])
ax.xaxis.set_major_locator(mdates.DayLocator(interval=7))
ax.xaxis.set_major_formatter(mdates.DateFormatter(fmt='%m%d'))
ax.set_xlim(df['data'].min(), datetime.date(2020, 8, 21))
plt.setp(ax.get_xticklabels(), rotation = 45)
plt.show()
1.csv
长得像
regiao data casosNovos
Brasil 2/25/2020 0
Brasil 2/26/2020 1
Brasil 2/27/2020 0
Brasil 2/28/2020 0
Brasil 2/29/2020 1
Brasil 3/1/2020 0
Brasil 3/2/2020 0
Brasil 3/3/2020 0