2016-07-26 128 views
2

我的數據集是這樣的:一個Python列表與6號[23948.30,23946.20,23961.20,23971.70,23956.30,23987.30]蟒/ matplotlib/seaborn-箱線圖上的數據點的x軸

我希望他們作爲x軸上方的水平方塊圖,其中[23855和24472]作爲x軸的極限(不含y軸)。

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() 

`

enter image description here

Seaborn代碼我現在正在嘗試:

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() 

    fig2 = plt.figure() 

    sns.set(style="ticks") 

    x = circ_list 
    y = [] 
    for i in range(0, len(circ_list)): 
     y.append(0) 

    f, (ax_box, ax_line) = plt.subplots(2, sharex=True, 
             gridspec_kw={"height_ratios": (.15, .85)}) 

    sns.boxplot(x, ax=ax_box) 
    sns.pointplot(x, ax=ax_line, ay=y) 

    ax_box.set(yticks=[]) 
    ax_line.set(yticks=[]) 
    sns.despine(ax=ax_line) 
    sns.despine(ax=ax_box, left=True) 

    cur_axes = plt.gca() 
    cur_axes.axes.get_yaxis().set_visible(False) 
    sns.plt.show() 

enter image description here

回答

2

我回答在其他職位這個問題爲好,但我會爲了以防萬一它貼在這裏。我還添加了一些我覺得可能更接近你想要達到的目標。

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.28, 1.5)) 
    ax.set_yticks([]) 
    labels = ["{}".format(int(i)) for i in ax.get_xticks()] 
    ax.set_xticklabels(labels) 
    ax.spines['right'].set_color('none') 
    ax.spines['top'].set_color('none') 
    ax.spines['left'].set_color('none') 
    ax.spines['bottom'].set_position('center') 
    ax.spines['bottom'].set_color('none') 
    ax.xaxis.set_ticks_position('bottom') 
    plt.show() 

box_plot(l) 

結果:

Your box-plot

不要讓我知道它是否符合你所期待的。

+0

非常感謝你..但這感覺就像它有很長的鬍鬚。你能否在箱形圖下添加x軸(點位於x軸上)?類似於我在海豹身上所擁有的東西? – KKlalala

+0

它有很長的鬍鬚,因爲你的數據有很高的差異:)。要添加x軸,只需從代碼中移除下面的代碼:ax.spines ['bottom']。set_color('none') – Andreq

+0

我試過了,效果不好。讓我再澄清一點這個問題! – KKlalala