Matplotlib:用boxplot替换散点图轴

时间:2020-03-19 00:30:08

标签: matplotlib

我想创建一个散点图,其中的轴是边际分布的窄箱形图。我看到了一种通过共享x / y轴具有多个子图轴来实现此目的的方法,但是我更喜欢在单个轴/子图中实现该目的的解决方案。原则上,可以这样实现:

plt.scatter(x, y)
plt.boxplot(x, vert=False, positions=[ypos], widths=ywidth)
plt.boxplot(y, vert=True, positions=[xpos], widths=xwidth)

ax = plt.gca()
q = 25, 50, 75
plt.setp(ax, frame_on=False, xticks=np.percentile(x, q), yticks=np.percentile(y, q))
ax.xaxis.set_major_formatter(FormatStrFormatter('%.2f'))
ax.yaxis.set_major_formatter(FormatStrFormatter('%.2f'))

我可以去的地方

ypos = y.min()
ywidth = 0.01*y.ptp()
xpos = x.min()
xwidth = 0.01*x.ptp()

但是,如果我更改轴限制,这将使散点图随数据一起移动,而不是将它们相对于轴保持在固定位置。有没有更好的方法来实现这一目标?可以用箱形图代替脊椎吗?

0 个答案:

没有答案