使用seaborn绘制变量分布

一、可视化结果

横坐标为长度,纵坐标为密度分布。该表还绘制最大最小以及中间值。

二、代码

##绘制阴性阳性各自长度分布
##d0是阴性长度分布的list,d1是阳性长度分布的list,str为文件名的字符串
def plot_distribution(d0,d1,str):
    my_colors = ["#517664", "#73AA90", "#94DDBC", "#DAB06C", 
             "#DF928E", "#C97973", "#B25F57"]
    # Plot
    f, (a0, a1) = plt.subplots(1, 2, figsize=(24, 12))
    sns.distplot(a=d0, rug=True, hist=False, 
                rug_kws={"color": my_colors[5]},
                kde_kws={"color": my_colors[5], "lw": 5, "alpha": 0.7},
                ax=a0)
    ##绘制第一个图
    a0.set_title("No M", weight="bold", size=20)##标题
    a0.axvline(x=np.mean(d0), ls=":", lw=2, color="black")###绘制竖直辅助线
    a0.text(x=np.mean(d0)+0.5, y=0.000, s="mean: {}".format(np.mean(d0)), size=17, color="black", weight="bold")
    a0.axvline(x=np.min(d0), ls=":", lw=2, color="black")
    a0.text(x=np.min(d0)+0.5, y=0.004, s="min: {}".format(np.min(d0)), size=17, color="black", weight="bold")
    a0.axvline(x=np.max(d0), ls=":", lw=2, color="black")
    a0.text(x=np.max(d0)-10, y=0.008, s="max: {}".format(np.max(d0)), size=17, color="black", weight="bold")

    ##同样代码绘制第二个图
    sns.distplot(a=d1, rug=True, hist=False, 
                rug_kws={"color": my_colors[2]},
                kde_kws={"color": my_colors[2], "lw": 5, "alpha": 0.7},
                ax=a1)
    a1.set_title("M", weight="bold", size=20)
    a1.axvline(x=np.mean(d1), ls=":", lw=2, color="black")
    a1.text(x=np.mean(d1)+0.5, y=0.000, s="mean: {}".format(np.mean(d1)), size=17, color="black", weight="bold")
    a1.axvline(x=np.min(d1), ls=":", lw=2, color="black")
    a1.text(x=np.min(d1)+0.5, y=0.004, s="min: {}".format(np.min(d1)), size=17, color="black", weight="bold")
    a1.axvline(x=np.max(d1), ls=":", lw=2, color="black")
    a1.text(x=np.max(d1)-10, y=0.008, s="max: {}".format(np.max(d1)), size=17, color="black", weight="bold")


    plt.suptitle("{}_Distribution".format(str), weight="bold", size=25)
    sns.despine(right=True, top=True, left=True)##移除坐标轴
    plt.savefig("./{}.png".format(str))##保存
    plt.clf()##清除figure,防止再次调用时figure重叠
    print("0",np.mean(d0),np.min(d0),np.max(d0))
    print("1",np.mean(d1),np.min(d1),np.max(d1))

三、函数解释

1、axvline绘制辅助线

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值