如何使用matplotlib在y轴上以不连续的y区间绘制箱线图?

时间:2014-04-18 02:19:01

标签: python numpy matplotlib

我有以下数据集,我需要使用matplotlib生成boxplot:

[92,92,92,92,92,92,92,92,92,92,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,95,95]

但我希望箱形图的y轴分为以下区间:[64000-277231,277231-380059,380059-827581,827581-1338451,1338451-2593146,2593146-4559994]和x -axis以1的间隔划分,​​即[1,2,3,4,5,6,7,8,9]。我是matplotlib的新手,必须完成这项工作,我也提到了这篇文章。我编写了以下脚本来绘制框图,但我无法使用不同的matplotlib构造实现上述功能,如xticks,yticks和xlim以及ylim。

import numpy as np
import matplotlib as mpl

# agg backend is used to create the output file as a .png file
mpl.use('agg')

import matplotlib.pyplot as plt

plt.suptitle('Bitrate vs Trials', fontsize=15)
plt.ylabel("Bitrate")   
plt.xlabel("Trials")    
fig_instance = plt.figure(1 , figsize=(9,6))
ax_instance = fig_instance.add_subplot(111)
bp = ax_instance.boxplot(bitRateList)
# save the figure
fig_instance.savefig('a.png',bbox_inches='tight')

如何绘制上面列表中的图表。

1 个答案:

答案 0 :(得分:0)

似乎你想使用log scale y轴,你可以尝试

ax_instance.set_yscale('log')