Python seaborn regplot格式日期,回归线日期截止,两个y轴
我希望能够快速比较两个不同的数据集,并通过查看两条回归线,了解它们在特定日期的相关性 我一直试图在不同的轴上绘制线条图,每个轴上都有一条从某个特定日期开始到某个特定日期的回归线。两个绘图的日期必须相同,并且我不希望reggression行覆盖X轴上的所有日期,只覆盖指定的自定义日期。因此,regplot需要显示日期并理解它们是日期Python seaborn regplot格式日期,回归线日期截止,两个y轴,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我希望能够快速比较两个不同的数据集,并通过查看两条回归线,了解它们在特定日期的相关性 我一直试图在不同的轴上绘制线条图,每个轴上都有一条从某个特定日期开始到某个特定日期的回归线。两个绘图的日期必须相同,并且我不希望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()