Ray*_*Dey 4 python matplotlib python-3.x seaborn
我已经计算了中位数、下/上四分位数、最小值和最大值,作为我单独应用程序的一部分,并将这些值写入文件,我想使用这些特定值构建箱线图。
有没有办法使用 matplotlib(或 seaborn)手动指定这些值中的每一个,而不是提供数据数组(我不需要异常值)?我试过查看文档,但没有发现任何特别相关的内容,但我可能忽略了一些内容。
就像是:
plt.boxplot(median=median_val, quartiles=(lower, upper), range=(min, max))
Run Code Online (Sandbox Code Playgroud)
将是理想的。我也对任何网络解决方案持开放态度。
matplotlib 中有一个内置函数bxp——让你指定计算的统计数据而不是原始数据来计算,避免创建自己的函数的需要。
您需要将其作为方法从您的Axes对象中调用,而不是从plt:
import matplotlib.pyplot as plt
stats = [
{'med': 5, 'q1': 2, 'q3': 6, 'whislo': 1, 'whishi': 8},
{'med': 4, 'q1': 2, 'q3': 6, 'whislo': 1, 'whishi': 8}
]
_, ax = plt.subplots();
ax.bxp(stats, showfliers=False);
Run Code Online (Sandbox Code Playgroud)
重要的是,您的输入需要是一个字典列表,对应于要绘制的框列表(即使只有 1 个)。