[Python] show distribution

import seaborn as sns; sns.set()from scipy import statsfrom scipy.stats import norm ,skewdef my_boxcox(x):    global boxcox_lambda    xx,boxcox_lambda = stats.boxcox(x+0.0001)      return xxdef my_boxcox_inv(x):    global boxcox_lambda    xx = special.inv_boxcox(x,boxcox_lambda)      return xx    def show_dis(x):    x_log = np.log1p(x )    x_boxcox = my_boxcox(x)            skew_x = skew(x)    skew_log = skew(x_log)    skew_boxcox = skew(x_boxcox)           plt.figure(figsize=(15,15))        ax1= plt.subplot(631)    ax1.set_title('Normal')    sns.distplot(x, kde=True, fit=stats.norm ,ax = ax1)    ax2= plt.subplot(632)    ax2.set_title('Log Normal')    sns.distplot(x, kde=True, fit=stats.lognorm ,ax = ax2)    ax3 = plt.subplot(633)    ax3.set_title('Johnson SU')    sns.distplot(x, kde=True, fit=stats.johnsonsu ,ax = ax3)        print("{}".format(x_log.isna().sum()))    ax4= plt.subplot(634)    ax4.set_title('Normal (x_log)')    sns.distplot(x_log, kde=True, fit=stats.norm ,ax = ax4)    ax5= plt.subplot(635)    ax5.set_title('Log Normal (x_log)')    sns.distplot(x_log, kde=True, fit=stats.lognorm ,ax = ax5)    ax6 = plt.subplot(636)    ax6.set_title('Johnson SU (x_log)')    sns.distplot(x_log, kde=True, fit=stats.johnsonsu ,ax = ax6)        #    print("{}".format(x_boxcox.isnan().sum()))    ax7= plt.subplot(637)    ax7.set_title('Normal (x_boxcox)')    sns.distplot(x_boxcox, kde=True, fit=stats.norm ,ax = ax7)    ax8= plt.subplot(638)    ax8.set_title('Log Normal (x_boxcox)')    sns.distplot(x_boxcox, kde=True, fit=stats.lognorm ,ax = ax8)    ax9 = plt.subplot(639)    ax9.set_title('Johnson SU (x_boxcox)')    sns.distplot(x_boxcox, kde=True, fit=stats.johnsonsu ,ax = ax9)    (mu, sigma) = norm.fit(x)      print('\nskew(x) ={} \nskew(x_log) = {}\nskew(x_boxcox) = {}'.format(skew_x,                                                                         skew_log,                                                                         skew_boxcox))    #Get also the QQ-plot    ax10= plt.subplot(614)    res = stats.probplot(x, plot=ax10)        ax11= plt.subplot(615)    res = stats.probplot(x_log, plot=ax11)          ax12= plt.subplot(616)    res = stats.probplot(x_boxcox, plot=ax12)          plt.tight_layout()

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章