在seaborn中从FacetGrid中移除y轴值

19

尝试移除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 报错:AttributeError: 'list' object has no attribute 'axes'

get_yaxis() 无效。

如何从seaborn中的FacetGrid中删除y轴值?

1个回答

42
尝试在绘图后调用g.set(yticks=[])。这只是循环遍历轴并在每个轴上调用ax.set_yticks([])
这也会关闭刻度线/网格线,我假设您想要这种绘图效果,但如果您只想关闭标签,可以使用g.set(yticklabels=[])

感谢您的帮助!我也想帮助扩展您优秀API的说明,例如set()函数以及更多底层细节。我非常感激,但是对于基本问题如何工作的基础知识,我感到很糟糕。当我完成这个项目时,也许我可以更全面地阅读您的源代码,而不是暴露/扩展您的API,而是帮助那些刚接触matplotlib的人...再次感谢您! - syntax
这里有文档记录(http://stanford.edu/~mwaskom/software/seaborn/tutorial/axis_grids.html#subsetting-data-with-facetgrid),但是是的,`FacetGrid` 很复杂,你需要了解很多才能充分使用它。 - mwaskom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接