【发布时间】:2017-10-11 11:26:33
【问题描述】:
【问题讨论】:
-
我认为你应该添加你的代码
-
不仅仅是你的代码,还有Minimal, Complete, and Verifiable Example。
-
This question 相当于条形图。
标签: python matplotlib
【问题讨论】:
标签: python matplotlib
您可以根据绘图上的位置设置框的特定宽度。 boxplot 的width 参数允许设置不同的宽度。要计算相应的宽度,您需要将位置转换为线性比例,添加或减去一些线性宽度,然后转换回对数比例。因此获得的两个值之间的差异是要设置的条的宽度。
这里使用的线性宽度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()
【讨论】: