seaborn中的白盒图? (叠加层不透明)

Posted

技术标签:

【中文标题】seaborn中的白盒图? (叠加层不透明)【英文标题】:White box plot in seaborn? (not transparent on overlay) 【发布时间】:2021-12-17 20:04:55 【问题描述】:

我想在 seaborn 中创建一个具有自定义背景颜色的图,并在其之上绘制一些白色箱线图。相反,当它们设置为白色时,它们基本上是透明的。

这是我的代码:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas

with open('Data_Figure.csv', 'r') as handle:
    data_plot = pandas.read_csv(handle, sep='\t')

fig, ax = plt.subplots(figsize=(4,6), dpi=600)

ax.axvspan(-0.5, 0.5, facecolor='#FFFFCC', alpha=0.3)
ax.axvspan(0.5, 1.5, facecolor='#FFE600', alpha=0.3)
ax.axvspan(1.5, 2.5, facecolor='#999900', alpha=0.3)

g1 = sns.boxplot(x="Group", y="ORIG – MTP 405nm average", hue="Type", palette = ['w'],
                 fliersize=0, width=0.5, medianprops=dict(color="red", alpha=1), boxprops=dict(linewidth=1, facecolor='w', edgecolor='k', alpha=1), 
                 whiskerprops=dict(linewidth=0.75, color='k', alpha=1), capprops=dict(linewidth=0.5, color='k', alpha=1),
                 data=data_plot, ax=ax)
plt.legend()

相反,我得到以下信息。以盒子内部为背景。也许我应该使用不同的方法来创建背景?还是应该对层的顺序有一个规范?

【问题讨论】:

【参考方案1】:

框有zorder 0,而黄色背景补丁有zorder 1,因此将在框上绘制。

您可以指定补丁的 zorder,例如将其设置为 -1:

ax.axvspan(-0.5, 0.5, facecolor='#FFFFCC', alpha=0.3, zorder=-1)
ax.axvspan(0.5, 1.5, facecolor='#FFE600', alpha=0.3, zorder=-1)
ax.axvspan(1.5, 2.5, facecolor='#999900', alpha=0.3, zorder=-1)

【讨论】:

以上是关于seaborn中的白盒图? (叠加层不透明)的主要内容,如果未能解决你的问题,请参考以下文章

第四周 项目中的白盒测试

软件测试中的白盒测试分析

如何从树资源中隐藏日期试验计划程序中的白盒图标?

白盒测试用例设计方法笔记-白盒测试用例设计概述

后台服务项目的白盒测试之旅

后台服务项目的白盒测试之旅