【发布时间】:2020-12-29 02:53:02
【问题描述】:
我正在使用 pyplot.boxplots 以对数刻度绘制箱线图,然后我想使用 seaborn 在其上绘制 swarmplot/条形图。 然而,seaborn 把我们整个规模都弄乱了,而且情节非常荒谬。知道如何在 seaborn 中提供自定义位置吗?
att1= np.sort(np.unique(df1.att1))
w = 0.085
width = lambda p, w: 10 ** (np.log10(p) + w / 2.) - 10 ** (np.log10(p) - w / 2.)
custom_widths = width(freqns, w)
ax.boxplot([df1[df1.att1== xi].att2 for xi in att1], positions=att1,
boxprops={'facecolor': 'none'}, medianprops={'color': 'black'}, patch_artist=True,
widths=custom_widths)
ax.set_xscale("log")
fig.set_size_inches(10.5, 8)
means = [np.median(df1[df1.Frequency == xi].CapDensity) for xi in freqs]
plt.plot(freqns, means, '--k*', lw=1.2)
这是没有带状图的图像:
sns.stripplot(x="Frequency", y="CapDensity",data=df1, edgecolor="black", linewidth=.3, jitter=0.1, zorder=0.5, ax=ax)
这是我在箱线图上绘制条形图的时候。
【问题讨论】:
-
在末尾设置比例
-
df1未定义 -
代码只是整个脚本的一部分,用于了解我正在绘制的内容和方式。我无法共享数据,而且我太新手,无法生成与情节匹配的随机数据。我希望你明白。感谢您的考虑
-
@PaulH 如果您在最后设置对数刻度,xlims 将以线性刻度计算并且太宽(甚至不可能)。当 x 值为 1 和 100 时,默认 xlim 为
-3.95, 104.95。首先设置 logscale 时,默认填充按预期工作。
标签: python matplotlib seaborn boxplot