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中的白盒图? (叠加层不透明)的主要内容,如果未能解决你的问题,请参考以下文章