seaborn clustermap设置colorbar方面

时间:2017-12-21 14:48:24

标签: matplotlib seaborn

从文档中可以看出,应该可以在seaborn.clustermapseaborn.heatmap中设置所有颜色条属性。就像this example中的刻度一样。

但是以下在colorbar初始化中给出了错误。

g = sns.clustermap(np.random.rand(5,20), 
                   row_cluster=None, col_cluster=None, figsize=(8,3),
                   vmin = 0.25, vmax=1.0, cbar_kws={"aspect":50})
TypeError                                 Traceback (most recent call last)
<ipython-input-29-820904ac4602> in <module>()
      1 g = sns.clustermap(np.random.rand(5,20), 
      2                    row_cluster=None, col_cluster=None, figsize=(8,3),
----> 3                    vmin = 0.25, vmax=1.0, cbar_kws={"aspect":50})

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\seaborn\matrix.py in clustermap(data, pivot_kws, method, metric, z_score, standard_scale, figsize, cbar_kws, row_cluster, col_cluster, row_linkage, col_linkage, row_colors, col_colors, mask, **kwargs)
   1299                         row_cluster=row_cluster, col_cluster=col_cluster,
   1300                         row_linkage=row_linkage, col_linkage=col_linkage,
-> 1301                         **kwargs)

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\seaborn\matrix.py in plot(self, metric, method, colorbar_kws, row_cluster, col_cluster, row_linkage, col_linkage, **kws)
   1140 
   1141         self.plot_colors(xind, yind, **kws)
-> 1142         self.plot_matrix(colorbar_kws, xind, yind, **kws)
   1143         return self
   1144 

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\seaborn\matrix.py in plot_matrix(self, colorbar_kws, xind, yind, **kws)
   1115         heatmap(self.data2d, ax=self.ax_heatmap, cbar_ax=self.cax,
   1116                 cbar_kws=colorbar_kws, mask=self.mask,
-> 1117                 xticklabels=xtl, yticklabels=ytl, **kws)
   1118 
   1119         ytl = self.ax_heatmap.get_yticklabels()

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\seaborn\matrix.py in heatmap(data, vmin, vmax, cmap, center, robust, annot, fmt, annot_kws, linewidths, linecolor, cbar, cbar_kws, cbar_ax, square, xticklabels, yticklabels, mask, ax, **kwargs)
    526     if square:
    527         ax.set_aspect("equal")
--> 528     plotter.plot(ax, cbar_ax, kwargs)
    529     return ax
    530 

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\seaborn\matrix.py in plot(self, ax, cax, kws)
    290         # Possibly add a colorbar
    291         if self.cbar:
--> 292             cb = ax.figure.colorbar(mesh, cax, ax, **self.cbar_kws)
    293             cb.outline.set_linewidth(0)
    294             # If rasterized is passed to pcolormesh, also rasterize the

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\matplotlib\figure.py in colorbar(self, mappable, cax, ax, use_gridspec, **kw)
   1862                 cax, kw = cbar.make_axes(ax, **kw)
   1863         cax._hold = True
-> 1864         cb = cbar.colorbar_factory(cax, mappable, **kw)
   1865 
   1866         self.sca(current_ax)

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\matplotlib\colorbar.py in colorbar_factory(cax, mappable, **kwargs)
   1366         cb = ColorbarPatch(cax, mappable, **kwargs)
   1367     else:
-> 1368         cb = Colorbar(cax, mappable, **kwargs)
   1369 
   1370     cid = mappable.callbacksSM.connect('changed', cb.on_mappable_changed)

~\AppData\Local\Continuum\Miniconda3\lib\site-packages\matplotlib\colorbar.py in __init__(self, ax, mappable, **kw)
    944                 kw['alpha'] = mappable.get_alpha()
    945 
--> 946             ColorbarBase.__init__(self, ax, **kw)
    947 
    948     def on_mappable_changed(self, mappable):

TypeError: __init__() got an unexpected keyword argument 'aspect'

实际上允许设置哪些属性?当图形不是方形时,还有另一种方法可以使色条看起来更好吗? (可能aspect甚至不是我想要的,可能我真的想要改变边界框。)

0 个答案:

没有答案