gpt4 book ai didi

python - Matplotlib 箱线图宽度(对数刻度)

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:17 24 4
gpt4 key购买 nike

我正在尝试绘制具有对数 x 轴的箱线图。正如您在下面的示例中看到的那样,每个框的宽度由于缩放而减小。有没有办法让所有盒子的宽度都一样?

enter image description here

最佳答案

您可以根据图上的位置设置框的特定宽度。 boxplotwidth 参数允许设置不同的宽度。要计算相应的宽度,您需要将位置转换为线性比例,加上或减去一些线性宽度,然后转换回对数比例。因此获得的两个值之间的差异是要设置的条的宽度。

这里使用的线性宽度 w 当然是任意的;您需要为自己选择一个好的值。

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)

a = np.cumsum(np.random.rayleigh(150, size=(50,8)), axis=1)

fig, ax=plt.subplots()

positions=np.logspace(-0.1,2.6,8)

w = 0.1
width = lambda p, w: 10**(np.log10(p)+w/2.)-10**(np.log10(p)-w/2.)

ax.boxplot(a, positions=positions, widths=width(positions,w))
ax.set_xscale("log")
plt.show()

enter image description here

关于python - Matplotlib 箱线图宽度(对数刻度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46687062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com