1. 程式人生 > >matplotlib批量生成子圖--用於比較分析

matplotlib批量生成子圖--用於比較分析

#################################################
#################0912 畫圖
#################################################
import numpy as np
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
import os,sys


os.chdir('/Users/cc/Documents/cc工作 餓了麼_生意金/201809/six_bad') #用於改變當前工作目錄到指定的路徑
data=pd.read_csv('cc_repay_fea_0912.csv') #####計算均值 def avgsix(data,col): data05=data[data['loan_month']=='2018-05'] data06=data[data['loan_month']=='2018-06'] data07=data[data['loan_month']=='2018-07'] data08=data[data['loan_month']=='2018-08'] a=[]###全部 a.append(np.mean(data05[col])) a.append(np.mean(data06[col])) a.append(np.mean(data07[col])) a.append(np.mean(data08[col])) b=[]####逾期
b.append(np.mean(data05[data05['dpd7']==1][col])) b.append(np.mean(data06[data06['dpd7']==1][col])) b.append(np.mean(data07[data07['dpd7']==1][col])) b.append(np.mean(data08[data08['dpd7']==1][col])) c=[]###不逾期 c.append(np.mean(data05[data05['dpd7']==0][col])) c.append(np.mean(data06[data06['dpd7'
]==0][col])) c.append(np.mean(data07[data07['dpd7']==0][col])) c.append(np.mean(data08[data08['dpd7']==0][col])) return a, b, c simple=data[data['seg']=="simple"] recall=data[data['seg']=="recall"] normal=data[data['seg']=="normal"] import matplotlib.pyplot as plt def ccsubplot(col): [t1,t2,t3]=avgsix(data,col) [s1,s2,s3]=avgsix(simple,col)##簡易 [r1,r2,r3]=avgsix(recall,col)###體驗 [n1,n2,n3]=avgsix(normal,col)###正常 x=[5,6,7,8] x1=["May","Ju","Jul","Aug"] plt.figure(figsize=(20,15)) plt.figure() plt.subplot(2, 1, 1) plt.plot(x,t1,"b-",label="total",linewidth=2) plt.plot(x,s1,"g-x",label="simple",linewidth=2) plt.plot(x,r1,"c-+",label="recall",linewidth=2) plt.plot(x,n1,"r-*",label="normal",linewidth=2) plt.xticks(x,x1)###修改座標軸標籤 plt.legend(loc='upper right') plt.ylabel("avg") plt.title(col,fontsize=15) plt.subplot(2,2,3) plt.plot(x,t2,"b-",label="total",linewidth=2) plt.plot(x,s2,"g-x",label="simple",linewidth=2) plt.plot(x,r2,"c-+",label="recall",linewidth=2) plt.plot(x,n2,"r-*",label="normal",linewidth=2) plt.xticks(x,x1)###修改座標軸標籤 plt.ylabel("avg") plt.title("ever7+",fontsize=12) plt.subplot(224) plt.plot(x,t3,"b-",label="total",linewidth=2) plt.plot(x,s3,"g-x",label="simple",linewidth=2) plt.plot(x,r3,"c-+",label="recall",linewidth=2) plt.plot(x,n3,"r-*",label="normal",linewidth=2) plt.xticks(x,x1)###修改座標軸標籤 plt.ylabel("avg") plt.title("not ever7+",fontsize=12) plt.savefig(col+".jpg") plt.tight_layout() coll=data.columns col=coll[16:len(coll)-2] for i in col: ccsubplot(i)