我是一个用python编程的初学者,我有一个问题:
这段代码可以很好地为每一列创建一个图表:
主要的DF是:
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
所以我得到了这个:
现在我想创建一个for-Loop来创建相同的图和相同的x轴(基准),但使用另一列(有22列)
有人能帮帮我吗?
发布于 2020-06-26 11:30: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)
然后将显示以下图片:
https://stackoverflow.com/questions/62298846
复制