Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python seaborn regplot格式日期,回归线日期截止,两个y轴_Python_Matplotlib_Seaborn - Fatal编程技术网

Python seaborn regplot格式日期,回归线日期截止,两个y轴

Python seaborn regplot格式日期,回归线日期截止,两个y轴,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我希望能够快速比较两个不同的数据集,并通过查看两条回归线,了解它们在特定日期的相关性 我一直试图在不同的轴上绘制线条图,每个轴上都有一条从某个特定日期开始到某个特定日期的回归线。两个绘图的日期必须相同,并且我不希望reggression行覆盖X轴上的所有日期,只覆盖指定的自定义日期。因此,regplot需要显示日期并理解它们是日期 设置日期格式,使其与regplot一起使用,因为这不是一个 本地特征 双y轴 显示为线图而不是散点图的数据 特定日期和并非所有数据之间的回归线 我在任何地方都找不到答

我希望能够快速比较两个不同的数据集,并通过查看两条回归线,了解它们在特定日期的相关性

我一直试图在不同的轴上绘制线条图,每个轴上都有一条从某个特定日期开始到某个特定日期的回归线。两个绘图的日期必须相同,并且我不希望reggression行覆盖X轴上的所有日期,只覆盖指定的自定义日期。因此,regplot需要显示日期并理解它们是日期

  • 设置日期格式,使其与regplot一起使用,因为这不是一个 本地特征
  • 双y轴
  • 显示为线图而不是散点图的数据
  • 特定日期和并非所有数据之间的回归线

  • 我在任何地方都找不到答案,所以我想我会把它贴在这里,因为我花了一些时间才弄明白

    #'date': pandas.to_datetime(date),   # pandas datesimport datetime
    from matplotlib import pyplot, dates
    import seaborn as sns
    import matplotlib.pyplot as plt
    import pandas as pd
    
    
    timeLine = ["2020-01-01", "2021-01-01", "2022-01-01", "2023-01-01", "2024-01-01"]
    
    # format data
    df = pd.DataFrame({
        'Dates': pd.to_datetime(timeLine),
        'datenum': dates.datestr2num(timeLine),
        'y1': [7, 6, 8, 8, 7],
        'y2': [10, 13, 16, 13, 12]
        })
    
    # dates to float
    @pyplot.FuncFormatter
    def fake_dates(x, pos):
        return dates.num2date(x).strftime('%Y-%m-%d')
    
    # date range to constrain length of regression line
    startDate = '"2020-02-02"'
    endDate = '"2023-05-05"'
    customDates = 'Dates > ' + startDate + ' and ' + 'Dates < ' + endDate + ''
    
    """y1"""
    plt.ylim(ymin=0, ymax=20)
    
    # regplot
    plot = sns.regplot(x='datenum', y='y1', ci=65, scatter=False, line_kws={'linewidth':10}, data=df.query(customDates), color="red")
    # original data
    sns.lineplot(x='datenum', y='y1', data=df)
    
    """y2"""
    ax2 = plt.twinx()
    plt.ylim(ymin=0, ymax=20)
    
    # regplot
    x = sns.regplot(x='datenum', y='y2', ax=ax2, ci=65, scatter=False, line_kws={'linewidth':10}, data=df.query(customDates), color="red")
    # original data
    y= sns.lineplot(x='datenum', y='y2', ax=ax2,  data=df, color="green")
    
    # fake dates - visual
    plot.xaxis.set_major_formatter(fake_dates)
    
    plt.show()
    
    #“日期”:pandas.to_datetime(日期),#pandas datesimport datetime
    从matplotlib导入pyplot,日期
    导入seaborn作为sns
    将matplotlib.pyplot作为plt导入
    作为pd进口熊猫
    时间线=[“2020-01-01”、“2021-01-01”、“2022-01-01”、“2023-01-01”、“2024-01-01”]
    #格式数据
    df=pd.DataFrame({
    “日期”:pd.to_datetime(时间线),
    “datenum”:dates.datestr2num(时间线),
    ‘y1’:[7,6,8,8,7],
    ‘y2’:[10,13,16,13,12]
    })
    #浮动日期
    @pyplot.FuncFormatter
    def假订单日期(x,pos):
    返回日期.num2date(x).strftime(“%Y-%m-%d”)
    #用于约束回归线长度的日期范围
    起始日期=“‘2020-02-02’”
    结束日期=““2023-05-05””
    customDates='Dates>'+startDate+'和'+'日期<'+endDate+''
    “y1”
    plt.ylim(ymin=0,ymax=20)
    #正则图
    plot=sns.regplot(x='datenum',y='y1',ci=65,scatter=False,linekws={'linewidth':10},data=df.query(customDates),color=“red”)
    #原始数据
    sns.lineplot(x='datenum',y='y1',data=df)
    “y2”
    ax2=plt.twinx()
    plt.ylim(ymin=0,ymax=20)
    #正则图
    x=sns.regplot(x='datenum',y='y2',ax=ax2,ci=65,scatter=False,line_-kws={'linewidth':10},data=df.query(customDates),color=“red”)
    #原始数据
    y=sns.lineplot(x='datenum',y='y2',ax=ax2,data=df,color=“绿色”)
    #假日期-视觉
    plot.xaxis.set\u major\u格式化程序(假日期)
    plt.show()