【问题标题】:White box plot in seaborn? (not transparent on overlay)seaborn中的白盒图? (叠加层不透明)
【发布时间】: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()

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

【问题讨论】:

    标签: python matplotlib colors seaborn boxplot


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多