首页 > 解决方案 > 为什么 Seaborn Relplot 不在 x 轴上打印日期时间值?

问题描述

我正在尝试解决 Kaggle 竞赛以更深入地了解数据科学知识。我正在处理 seaborn 图书馆的问题。我正在尝试沿日期绘制特征分布,但 relplot 函数无法打印日期时间值。在输出中,我看到一个大黑框而不是值。

这是我的代码,用于绘图:

rainfall_types = list(auser.loc[:,1:])
grid = sns.relplot(x='Date', y=rainfall_types[0], kind="line", data=auser);
grid.fig.autofmt_xdate()

这里有 Seaborn.relpot 输出我的数据集的头部

标签: pythonplottime-seriesseabornkaggle

解决方案


我发现了错误。实际上,当您使用 pandas.read_csv(dataset) 时,如果您的数据集包含 datetime 列,它们将被解析为对象,但 python 将这些值读取为“str”(字符串)。因此,当您要绘制它们时,matplotlib 无法正确显示它们。为避免这种行为,您应该使用以下方法将日期时间值转换为日期时间对象:

df = pandas.read_csv(dataset, parse_date='Column_Date')

这样,我们将向 pandas 库指示有一个由键 'Column_Date' 标识的日期列,并且必须将其转换为日期时间对象。如果需要,您可以使用 Column Date 作为数据框的索引,以加快分析速度。为此,请index='Column_Date'在您的 read_csv 中添加参数。

我希望你会发现它有帮助。


推荐阅读