2014-06-30 66 views
1

從Seaborn的FacetGrid中刪除yaxis值試圖去除yaxis值的

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().axesAttributeError: 'list' object has no attribute 'axes'

get_yaxis()什麼都不做。

如何從Seaborn中的FacetGrid中刪除yaxis值?

回答

8

試圖在繪圖後調用g.set(yticks=[])。這只是循環通過軸,並在它們中的每一個上調用ax.set_yticks([])

這也將關閉蜱/網格線,我認爲你想這個情節,但如果你只是想關閉標籤,你可以做g.set(yticklabels=[])

+0

感謝您的幫助!我也想幫助擴展你的好API的解釋;例如set()函數,以及更多的東西。我非常感激,但感到可怕的是不得不提出關於事情工作原理的基本問題。當我完成這個項目時,也許我可以更完整地閱讀你的src,而不是暴露/擴展你的API,但是幫助那些對matplotlib是新手的人......再次謝謝你! – syntax

+0

這是記錄[這裏](http://stanford.edu/~mwaskom/software/seaborn/tutorial/axis_grids.html#subsetting-data-with-facetgrid),但是'FacetGrid'是複雜的,有很多你' d必須知道它充分使用它。 – mwaskom