The purpose of this module is to provide the user with the ability to visualise each numerical columns in a pandas dataframe in a two dimensional figure relative to other numerical columns, the module revolves around the utilisation of seaborn
defeda_colplot_box(self,args:dict):# split data into numeric & non numericnum,cat=self.split_types(args['data'])columns=list(num.columns)n_cols=3n_rows=math.ceil(len(columns)/n_cols)if(args['x']isnotNone):xloc=args['data'][args['x']]else:xloc=Noneif(args['x']isnotNone):xloc=args['data'][args['x']]else:xloc=Noneif(args['hue']isnotNone):hueloc=args['data'][args['hue']]if(type(nlpi.pp['stheme'])isstr):palette=nlpi.pp['stheme']else:palette=palette_rgb[:len(hueloc.value_counts())]else:hueloc=Nonepalette=palette_rgbfig,ax=plt.subplots(n_rows,n_cols,figsize=(16,n_rows*5))sns.despine(fig,left=True,bottom=True)ax=ax.flatten()fori,columninenumerate(columns):plot_axes=[ax[i]]sns.set_style("whitegrid",{'grid.linestyle':'--'})if(args['bw']isNone):bw=0.8else:bw=eval(args['bw'])sns.boxplot(y=args['data'][column],x=xloc,hue=hueloc,width=bw,ax=ax[i],palette=palette)# titlesax[i].set_title(f'{column} distribution');ax[i].set_xlabel(None)foriinrange(i+1,len(ax)):ax[i].axis('off')plt.tight_layout()
defeda_colplot_scatter(self,args:dict):# split data into numeric & non numericnum,_=self.split_types(args['data'])columns=list(num.columns)n_cols=3n_rows=math.ceil(len(columns)/n_cols)if(args['x']isnotNone):xloc=args['data'][args['x']]else:xloc=Noneif(args['hue']isnotNone):hueloc=args['data'][args['hue']]if(type(nlpi.pp['stheme'])isstr):palette=nlpi.pp['stheme']else:palette=palette_rgb[:len(hueloc.value_counts())]else:hueloc=Nonepalette=palette_rgbfig,ax=plt.subplots(n_rows,n_cols,figsize=(16,n_rows*5))sns.despine(fig,left=True,bottom=True)ax=ax.flatten()fori,columninenumerate(columns):plot_axes=[ax[i]]sns.set_style("whitegrid",{'grid.linestyle':'--'})sns.scatterplot(y=args['data'][column],x=xloc,hue=hueloc,alpha=nlpi.pp['alpha'],linewidth=nlpi.pp['mew'],edgecolor=nlpi.pp['mec'],s=nlpi.pp['s'],ax=ax[i],palette=palette,)# titlesax[i].set_title(f'{column} distribution');ax[i].set_xlabel(None)foriinrange(i+1,len(ax)):ax[i].axis('off')plt.tight_layout()plt.show()