x轴上的python / matplotlib boxplot

时间:2016-07-26 16:01:02

标签: python matplotlib boxplot

我的数据集是一个包含6个数字的列表:[23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]

我希望它们位于x轴上的水平框图中,2385524472作为x轴的限制,因此框图将位于x轴的中间位置这条线。如果无法做到这一点,至少要在其下面显示x轴,并且非常接近盒子图。

我还希望方框图显示平均数。

现在我只能获得水平框图,我也希望x轴显示整数而不是“xx + 2.394e”。

现在是我的代码:

def box_plot(circ_list, wear_limit):
    print circ_list
    print wear_limit

    fig1 = plt.figure()
    plt.boxplot(circ_list, 0, 'rs', 0)
    plt.show()

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解了帖子中的所有内容,但这是我对您的代码的更正:

l = [23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]

def box_plot(circ_list):
    fig, ax = plt.subplots()
    plt.boxplot(circ_list, 0, 'rs', 0, showmeans=True)
    plt.ylim((0.75, 1.25))
    ax.set_yticks([])
    labels = ["{}".format(int(i)) for i in ax.get_xticks()]
    ax.set_xticklabels(labels)
    plt.show()

box_plot(l)

结果:

Your box-plot

现在您的请求细分以及代码如何与它们对应:

  • 显示均值:这是plt.boxplot函数中参数showmeans=True的简单添加。
  • 将水平框图绘制得更接近x轴。默认情况下,boxplot是在y = 1时绘制的,所以我只使用plt.ylim()将y轴重新调整为0.75和1.25之间。如果你想绘制更接近x轴的箱线图(例如,通过将0.75更改为0.9),或者从箱图中进一步绘制图的顶部(例如,将1.25更改为1.5),则可以调整这些数字。我还使用plt.set_ticks([])消除了使用更清洁的yticks。
  • 以整数形式显示x-ticks标签。我只是将xticks的每个标签转换为整数,然后使用ax.set_xticklabels()函数将其应用回来。

如果它符合您的要求,请告诉我,并告诉您快乐的matplotlib;)。