Python for Loop在数据帧中使用seaborn创建线型图

Python for Loop在数据帧中使用seaborn创建线型图,python,dataframe,for-loop,plot,seaborn,Python,Dataframe,For Loop,Plot,Seaborn,我是python编码的初学者,我有一个问题: 此代码非常适合为每个列创建图表: 主要功能是: 1-删除异常值: def remove_outliers(df_in, col): q1 = df_in[col].quantile(0.25) q3 = df_in[col].quantile(0.75) iqr = q3-q1 lower_bound = q1-1.5*iqr upper_bound = q3+1.5*iqr df_out = df_

我是python编码的初学者,我有一个问题:

此代码非常适合为每个列创建图表:

主要功能是:

1-删除异常值:

def remove_outliers(df_in, col):
    q1 = df_in[col].quantile(0.25)
    q3 = df_in[col].quantile(0.75)
    iqr = q3-q1
    lower_bound = q1-1.5*iqr
    upper_bound = q3+1.5*iqr
    df_out = df_in.loc[(df_in[col] > lower_bound) & (df_in[col] < upper_bound)]
    return df_out 
3-使用seaborn创建线型图:

df1_DH001= remove_outliers(main_df, 'DH001')[['DH 001','Datum']]

df1_DH001_chart= sns.scatterplot(x='Datum', y='DH 001', data=df1_DH001)
df1_DH001_chart= sns.lineplot(x='Datum', y='DH 001', data=df1_DH001, lw=3, color="b")

df1_DH001_chart.set(xlim=('1995','2019'), ylim=(0, 220) ,title='DH 001', ylabel='Nitrat mg/L', xlabel="Jahr")

df1_DH001_chart.xaxis.set_major_locator(mdates.YearLocator(1))
df1_DH001_chart.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

df1_DH001_chart
for i, col in enumerate(df1.columns):
    plt.figure(i)
    sns.lineplot(x='day',y=col, data=df)
所以我得到了这个:

现在我想创建一个for循环,以创建相同的绘图和相同的x轴(基准),但使用另一列(共22列)

有人能帮我吗?

导入以下内容:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
创建一个示例DF:

data = {'day': ['Mon','Tue','Wed','Thu'],
        'col1': [22000,25000,27000,35000],
        'col2': [2200,2500,2700,3500],
        }

df = pd.DataFrame(data)

只从DF中选择数值列,或者选择在循环中考虑的列:

df1 = df.select_dtypes([np.int, np.float])
遍历列并使用seaborn打印线条图:

df1_DH001= remove_outliers(main_df, 'DH001')[['DH 001','Datum']]

df1_DH001_chart= sns.scatterplot(x='Datum', y='DH 001', data=df1_DH001)
df1_DH001_chart= sns.lineplot(x='Datum', y='DH 001', data=df1_DH001, lw=3, color="b")

df1_DH001_chart.set(xlim=('1995','2019'), ylim=(0, 220) ,title='DH 001', ylabel='Nitrat mg/L', xlabel="Jahr")

df1_DH001_chart.xaxis.set_major_locator(mdates.YearLocator(1))
df1_DH001_chart.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

df1_DH001_chart
for i, col in enumerate(df1.columns):
    plt.figure(i)
    sns.lineplot(x='day',y=col, data=df)
然后将显示以下图片:

导入以下内容:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
创建一个示例DF:

data = {'day': ['Mon','Tue','Wed','Thu'],
        'col1': [22000,25000,27000,35000],
        'col2': [2200,2500,2700,3500],
        }

df = pd.DataFrame(data)

只从DF中选择数值列,或者选择在循环中考虑的列:

df1 = df.select_dtypes([np.int, np.float])
遍历列并使用seaborn打印线条图:

df1_DH001= remove_outliers(main_df, 'DH001')[['DH 001','Datum']]

df1_DH001_chart= sns.scatterplot(x='Datum', y='DH 001', data=df1_DH001)
df1_DH001_chart= sns.lineplot(x='Datum', y='DH 001', data=df1_DH001, lw=3, color="b")

df1_DH001_chart.set(xlim=('1995','2019'), ylim=(0, 220) ,title='DH 001', ylabel='Nitrat mg/L', xlabel="Jahr")

df1_DH001_chart.xaxis.set_major_locator(mdates.YearLocator(1))
df1_DH001_chart.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

df1_DH001_chart
for i, col in enumerate(df1.columns):
    plt.figure(i)
    sns.lineplot(x='day',y=col, data=df)
然后将显示以下图片: