python绘制多因子变量箱图

# -*- coding: utf-8 -*-
import pandas as pd
import seaborn as sns
#from scipy import stats
import matplotlib.pyplot as plt
#from matplotlib.backends.backend_pdf import PdfPages

e_i='TAD'
def plot_box(e_i):
     groups=['0.005','0.005_0.01','0.01_0.05','0.05_0.1','0.1_0.2','0.2']
     flatui = ['#0099FF','#009966','#CCCCCC','#FF6600','#CC3399', "#2ecc71"]
     my_map=sns.color_palette(flatui)
     
     k=0
     for g_i in groups:
          infile=r'F:\plants_HiC_evo\maize\TAD\{0}.{1}.txt'.format(g_i,e_i)
     
          dat=pd.read_table(infile,names=['chr','start','end','species',\
          'TAD type','a','b','len','cov'])
          dat=dat.loc[:,['cov','TAD type']]
          dat.loc[:,'freq']=g_i
          if k==0:
               res=dat
               k+=1
          else:
               res=pd.concat([res,dat])
     sns.set(style="ticks")
     sns.boxplot(x='freq',y='cov',data=res,showfliers=False,hue='TAD type',width=0.5,\
            linewidth=1.3,palette=my_map)
     plt.xlabel('frequency',fontsize='larger')
     plt.ylabel("SNP density in {0}".format(e_i),fontsize='larger')
     sns.despine(offset=5, trim=True)
plt.figure(figsize=(8,8))
plot_box(e_i)
plt.title('MAF vs SNP density in TAD',fontsize='x-large')
plt.savefig('F:\plants_HiC_evo\maize\TAD\MAF_vs_SNP_density_in_TAD.pdf')

得到结果如下:
 

猜你喜欢

转载自blog.csdn.net/super_he_pi/article/details/82963029