seaborn 中的白盒图? (覆盖层不透明)
White box plot in seaborn? (not transparent on overlay)
我想在 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()
相反,我得到以下信息。以盒子内部为背景。也许我应该使用不同的方法来创建背景?或者层的顺序应该有规范?
盒子有 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 中创建一个具有自定义背景颜色的绘图,并在其顶部绘制一些白色箱线图。相反,当它们设置为白色时,它们基本上是透明的。
这是我的代码:
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()
相反,我得到以下信息。以盒子内部为背景。也许我应该使用不同的方法来创建背景?或者层的顺序应该有规范?
盒子有 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)