2024-09-30 06:13:08 发布
网友
我希望能够快速比较两个不同的数据集,并通过查看两条回归线,了解它们在特定日期的相关性
我一直试图在不同的轴上绘制线条图,每个轴上都有一条从某个特定日期开始到某个特定日期的回归线。两个绘图的日期必须相同,并且我不希望reggression行覆盖X轴上的所有日期,只覆盖指定的自定义日期。因此,regplot需要显示日期并理解它们是日期
我在任何地方都找不到答案,所以我想我会把它贴在这里,因为我花了一些时间才弄明白
#'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()
我在任何地方都找不到答案,所以我想我会把它贴在这里,因为我花了一些时间才弄明白
相关问题 更多 >
编程相关推荐