Python 以日期为x轴的Seaborn点图

Python 以日期为x轴的Seaborn点图,python,datetime,matplotlib,plot,seaborn,Python,Datetime,Matplotlib,Plot,Seaborn,我正在尝试使用Seaborn生成基于数据收集日期分组的数据集的点图 在玩了一会儿Seaborn point plot之后,我意识到了一个问题:这些数据是在不同的日期收集的,但日期的间隔并不均匀。在我看来,在绘图过程中,Seaborn将日期视为分类变量 我想知道是否有办法找到与日期间隔相对应的间隔数据?尝试以下方法将字符串日期转换为datetime对象 import time import datetime as dt from datetime import datetime def dat

我正在尝试使用Seaborn生成基于数据收集日期分组的数据集的点图

在玩了一会儿Seaborn point plot之后,我意识到了一个问题:这些数据是在不同的日期收集的,但日期的间隔并不均匀。在我看来,在绘图过程中,Seaborn将日期视为分类变量


我想知道是否有办法找到与日期间隔相对应的间隔数据?

尝试以下方法将字符串日期转换为
datetime
对象

import time
import datetime as dt
from datetime import datetime

def dateconvert(Start_date):
    try:
        Start_date = int(Start_date)  
        Date_String = str(Start_date)
        dateconv = dt.datetime.strptime(Date_String,'%YYYY-%mm-%dd').strftime('%d/%m/%Y')
        return  dateconv
    except ValueError:
        return Start_date #or '' or whatever you want to return for NULL

尝试以下操作将字符串日期转换为
datetime
对象

import time
import datetime as dt
from datetime import datetime

def dateconvert(Start_date):
    try:
        Start_date = int(Start_date)  
        Date_String = str(Start_date)
        dateconv = dt.datetime.strptime(Date_String,'%YYYY-%mm-%dd').strftime('%d/%m/%Y')
        return  dateconv
    except ValueError:
        return Start_date #or '' or whatever you want to return for NULL

在我看来,Seaborn不支持将
datetime
作为x变量,在这种情况下,所有日期都被视为分类变量。这可能不是一个大问题,但它阻止我拟合回归线的点

最后我使用了
matplotlib.errorbar
函数,使用
numpy
计算中值和标准差。这似乎不是一个理想的解决方案,但它奏效了。(仍在研究回归趋势线,但我现在很好。)


在我看来,Seaborn不支持将
datetime
作为x变量,在这种情况下,所有日期都被视为分类变量。这可能不是一个大问题,但它阻止我拟合回归线的点

最后我使用了
matplotlib.errorbar
函数,使用
numpy
计算中值和标准差。这似乎不是一个理想的解决方案,但它奏效了。(仍在研究回归趋势线,但我现在很好。)


如果你需要帮助,你可以通过提供一个我不同意@Evert所说的答案来获得更大的成功。Seaborn pointplot是一种分类图,无论其数据类型如何,类别在pointplot上的间隔都是均匀的。也就是说,我不认为点图实际上是你们在这里寻找的,而是一个散点图。为了帮助您生成所需的绘图,您可能需要在问题中提供一些示例数据。@尽管x值已经是“datetime”对象,但Seaborn中的pointplot似乎没有相应地隔开它们。@ImportanceOfBeingErnest非常感谢。你完全正确。我在matplotlib中使用了错误条形图并解决了这个问题。谢谢我想你不应该在问题中回答你自己的问题。如果你认为你的发现对其他人有用,把它写下来作为你问题的答案。然后,您可以接受自己的答案(2天后),这样问题就标记为已解决。请注意,matplotlib中的函数名为
errorbar
,而不是
error\u bar
。如果您需要帮助,您可以提供一个我不同意@Evert所说的内容的函数,从而获得更大的成功。Seaborn pointplot是一种分类图,无论其数据类型如何,类别在pointplot上的间隔都是均匀的。也就是说,我不认为点图实际上是你们在这里寻找的,而是一个散点图。为了帮助您生成所需的绘图,您可能需要在问题中提供一些示例数据。@尽管x值已经是“datetime”对象,但Seaborn中的pointplot似乎没有相应地隔开它们。@ImportanceOfBeingErnest非常感谢。你完全正确。我在matplotlib中使用了错误条形图并解决了这个问题。谢谢我想你不应该在问题中回答你自己的问题。如果你认为你的发现对其他人有用,把它写下来作为你问题的答案。然后,您可以接受自己的答案(2天后),这样问题就标记为已解决。请注意,matplotlib中的函数名为
errorbar
,而不是
error\u bar
。Taylrl,谢谢您的回答。但是,数据已经存在于datetime对象中,问题是Seaborn未能按比例绘制它们。Taylrl,感谢您的回答。然而,数据已经存在于datetime对象中,问题是Seaborn未能按比例绘制它们。