一、可视化结果
横坐标为长度,纵坐标为密度分布。该表还绘制最大最小以及中间值。
二、代码
##绘制阴性阳性各自长度分布
##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绘制辅助线