如何使用Seaborn修改箱线图的标记颜色与图表宽度?
问题描述
我想用Seaborn把箱线图的异常值标记改成红色,同时缩小图表宽度以消除空白区域。当前代码如下:
import seaborn as sns import matplotlib.pyplot as plt rbp_box = sns.boxplot(data=df_raw, y="Resting blood pressure", color="red", flierprops={"marker": "x"}, width=0.2) rbp_box.set(xlabel='', ylabel='mm Hg', title='Resting blood pressure box plot')
解决方案
你可以通过两处修改实现需求:
- 设置异常值为红色:在
flierprops字典里添加markeredgecolor="red"(因为用的是x型标记,修改边缘颜色就能让标记显示红色) - 消除空白区域:通过
plt.subplots()提前设置适配的图表尺寸,比如figsize=(3,6),针对单变量箱线图缩小宽度,避免多余空白
修改后的完整代码:
import seaborn as sns import matplotlib.pyplot as plt # 设置图表尺寸,缩小宽度消除空白 fig, ax = plt.subplots(figsize=(3, 6)) # 配置箱线图参数,设置异常值为红色x标记 rbp_box = sns.boxplot( data=df_raw, y="Resting blood pressure", color="red", flierprops={"marker": "x", "markeredgecolor": "red"}, width=0.2, ax=ax ) rbp_box.set(xlabel='', ylabel='mm Hg', title='Resting blood pressure box plot') plt.show()
如果不想手动设置尺寸,也可以直接调整x轴范围来压缩空白:
# 在原有代码末尾添加这一行 plt.xlim(-0.3, 0.3) plt.show()
内容的提问来源于stack exchange,提问作者GandarfTheWhite
相关产品推荐
相关产品推荐

