web-dev-qa-db-ja.com

seabornのFacetGridからyaxis値を削除します

y軸の値を削除しようとしています。

_d = pd.DataFrame({'row':['a']*9 + ['b']*9 + ['c']*9,                                        
                        'col': ['fft','krn','bycp']*9,                                          
                        'val':np.random.randn(27)})                                             
    print 'data', d     
_

フィギュアをつかもうとしたがうまくいかない。

_    #f, (ax1, ax2) = plt.subplots(2, 1, sharex=True)                                            
    f,ax = plt.subplots()                                                                       
    r= d['row'].unique()                                                                        
    (c1, c2, c3, c4, c5) = sns.color_palette("husl", 6)[:5]                                     
    g = sns.FacetGrid(d, col='col', row='row',size=.7, aspect=5, palette="husl",margin_titles=True)
    g.map(sns.rugplot,'val',height=.12)                                                         
    print sns.axes_style()
_

despineは値を削除しません

_ sns.despine(left='False')                                                                   
    g.fig.subplots_adjust(wspace=.1, hspace=.02);                                               
    g.set_axis_labels(['a','b','c'], 'values');


    ax = plt.gcf().axes
    ax.axes.get_yaxis().set_visible(False)

    ax.set_visible(False)
    plt.show()
_

plt.gcf().axes give _AttributeError: 'list' object has no attribute 'axes'_

get_yaxis()は何もしません。

SeabornのFacetGridからyaxis値を削除する方法は?

13
syntax

プロットした後、g.set(yticks=[])を呼び出してみてください。これは、軸をループして、各軸でax.set_yticks([])を呼び出すだけです。

これにより、目盛り/グリッド線もオフになります。これは、このプロットに必要だと思いますが、ラベルをオフにしたい場合は、g.set(yticklabels=[])を実行できます。

31
mwaskom