【SCI绘图】【箱型图系列1 python】多类对比及各类下属子类对比

本文介绍了如何使用Python进行SCI箱型图的绘制,特别是针对多类对比和类内子类对比的情况。内容包括环境配置、示例数据介绍以及具体的绘图步骤,旨在为科研工作提供帮助。
摘要由CSDN通过智能技术生成

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研!

本期分享:

【SCI绘图】【箱型图系列1】多类对比+各类下属子类对比

文末附带完整代码:

1.环境准备

python 3

from matplotlib import pyplot as plt
from scipy import stats
import pandas as pd
import numpy as np
import seaborn as sns

sns.set_theme()
sns.set_style('ticks')

plt.rc('figure', dpi=300)
plt.rc('font', size=8, family='Times New Roman')
plt.rc('axes', labelsize=8, linewidth=1)
plt.rc('xtick', labelsize=8)
plt.rc('xtick.major', size=3, width=1, pad=1.5)
plt.rc('ytick', labelsize=8)
plt.rc('ytick.major', size=3, width=1, pad=1.5)
plt.rc('legend', fontsize=8)

2.示例数据

seaborn.load_dataset返回一个Dataframe,定义如下

seaborn.load_dataset(name, cache=True, data_home=None, **kws)

# 此处可进行修改为自己的数据
penguins = sns.load_dataset("penguins")
penguins.head()

sex类别有Male和Female两类

3.绘图展示

定义绘图函数boxplot

def boxplot(fig):
    ax = fig.subplots()

    # island为横轴标签类别,body_mass_g为纵轴数值,而sex为各标签类别下的两个子类(Male和Female)
    sns.boxplot(
        data=penguins, x="island", y="body_mass_g", hue="sex", showfliers=False, linewidth=1, width=0.618
    )
    ax.set(xlabel="island", ylabel="body mass (g)")
    ax.legend(ncol=2, loc="lower center", bbox_to_anchor=(0.5, 1), frameon=False)
    sns.despine(ax=ax)

执行绘图

fig = plt.figure(figsize=(7.2 / 2, 7.2 / 2))

boxplot(fig)

fig.show()

完整代码如下:

from matplotlib import pyplot as plt
from scipy import stats
import pandas as pd
import numpy as np
import seaborn as sns

sns.set_theme()
sns.set_style('ticks')

plt.rc('figure', dpi=300)
plt.rc('font', size=8, family='Times New Roman')
plt.rc('axes', labelsize=8, linewidth=1)
plt.rc('xtick', labelsize=8)
plt.rc('xtick.major', size=3, width=1, pad=1.5)
plt.rc('ytick', labelsize=8)
plt.rc('ytick.major', size=3, width=1, pad=1.5)
plt.rc('legend', fontsize=8)

penguins = sns.load_dataset("penguins")
penguins.head()

def boxplot(fig):
    ax = fig.subplots()

    # island为横轴标签类别,body_mass_g为纵轴数值,而sex为各标签类别下的两个子类(Male和Female)
    sns.boxplot(
        data=penguins, x="island", y="body_mass_g", hue="sex", showfliers=False, linewidth=1, width=0.618
    )
    ax.set(xlabel="island", ylabel="body mass (g)")
    ax.legend(ncol=2, loc="lower center", bbox_to_anchor=(0.5, 1), frameon=False)
    sns.despine(ax=ax)

fig = plt.figure(figsize=(7.2 / 2, 7.2 / 2))

boxplot(fig)

fig.show()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值