forLoop使用数据框中的seaborn创建线条图

2024-09-28 05:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

主要功能是:

enter image description here

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 

2-定义线图的格式

rc={'axes.labelsize': 20, 'font.size': 20, 'legend.fontsize':20,'axes.titlesize':20,'xtick.labelsize': 14,'ytick.labelsize': 14, 'lines.linewidth':1, 'lines.markersize':7, 'xtick.major.pad':10}



sns.set(rc=rc)

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

所以我得到了这个:

enter image description here

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

有人能帮我吗


Tags: indfchartcoldhdf1rcbound
1条回答
网友
1楼 · 发布于 2024-09-28 05:26:05

导入以下内容:

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打印线条图:

for i, col in enumerate(df1.columns):
    plt.figure(i)
    sns.lineplot(x='day',y=col, data=df)

然后将显示以下图片:

enter image description here

enter image description here

相关问题 更多 >

    热门问题