我正在使用JupyterLab,我试图制作一个matplotlib图,值计数(y轴),并在x轴上添加设备引入的年份为xxxx-xx-xx 00:00:00
。有趣的是,包含数据的列以xxxx-xx-xx
检索,而数据列的类型为:datetime64[ns]
。我想让图形只显示xxxx-xx-xx
(即只显示日期而不显示时间)。我该怎么办?我采取的一种替代方法是将数据类型从datetime64[ns]
更改为string。在本例中,图表显示的是日期fine(xxxx-xx-xx
),然而,matplotlib还在x轴上绘制了所有的NaT
,它的值计数比任何其他真实的日期都要大。
# I change the data types, I tried to remove the NaT:
ndf_dropped_rows = ndf.dropna()
ndf['opening_date_clean'].value_counts()
# I also tried
ndf_dropped_rows = ndf.dropna()
ndf['opening_date_clean'].value_counts() #but I get the following table:
NaT 250
1999-01-01 10
2022-01-01 8
1985-01-01 7
1976-01-01 7
...
1996-05-16 1
1996-04-30 1
1996-04-29 1
1996-06-10 1
2022-02-01 1
Name: opening_date_clean, Length: 603, dtype: int64
字符串
所以基本上NaT
还在。
1条答案
按热度按时间tzxcd3kk1#
Matplotlib提供了3种日期格式化程序:
AutoDateFormatter
、ConciseDateFormatter
和DateFormatter
(https://matplotlib.org/stable/api/dates_api.html)。前两个会根据可用数据和画布大小自动找出表示日期时间数据的最佳格式。但是,我们可以使用
matplotlib.dates.DateFormatter(fmt, tz=None, *, usetex=None)
来修改tick。你可以试试这个:
字符串
的数据