2015-10-15 9 views
8

私はSeabornをPythonで使用してヒートマップを作成しています。私は渡された値でセルに注釈を付けることができますが、セルの意味を示す注釈を追加したいと思います。たとえば、単に0.000000が表示されているのではなく、対応するラベル、たとえば「Foo」、または0.000000 (Foo)が必要です。カスタム注釈Seabornヒートマップ

ヒートマップ機能のためのSeaborn documentationは、私がここで重要であると考えているパラメータと少し不可解です:

annot_kws : dict of key, value mappings, optional 
    Keyword arguments for ax.text when annot is True. 

私はつまり、値へのエイリアスの辞書にannot_kwsを設定しようとした、{'Foo' : -0.231049060187, 'Bar' : 0.000000}、私はAttributeErrorを取得しています。

ここ
data = np.array([[0.000000,0.000000],[-0.231049,0.000000],[-0.231049,0.000000]]) 
axs = sns.heatmap(data, vmin=-0.231049, vmax=0, annot=True, fmt='f', linewidths=0.25) 

私はannot_kwsパラメータを使用しない(作業)出力されます:ここで

が私のコードである(私は手動reproducabilityはこちらデータ配列を作成しました) Working output

そして、ここで私はがannot_kwsのparam含まれませんときのスタックトレース:

を最後
--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-57-38f91f1bb4b8> in <module>() 
    12 
    13 
---> 14 axs = sns.heatmap(data, vmin=min(uv), vmax=max(uv), annot=True, annot_kws=kws, linewidths=0.25) 
    15 concepts 

/opt/anaconda/2.3.0/lib/python2.7/site-packages/seaborn/matrix.pyc in heatmap(data, vmin, vmax, cmap, center, robust, annot, fmt, annot_kws, linewidths, linecolor, cbar, cbar_kws, cbar_ax, square, ax, xticklabels, yticklabels, mask, **kwargs) 
    272  if square: 
    273   ax.set_aspect("equal") 
--> 274  plotter.plot(ax, cbar_ax, kwargs) 
    275  return ax 
    276 

/opt/anaconda/2.3.0/lib/python2.7/site-packages/seaborn/matrix.pyc in plot(self, ax, cax, kws) 
    170   # Annotate the cells with the formatted values 
    171   if self.annot: 
--> 172    self._annotate_heatmap(ax, mesh) 
    173 
    174   # Possibly add a colorbar 

/opt/anaconda/2.3.0/lib/python2.7/site-packages/seaborn/matrix.pyc in _annotate_heatmap(self, ax, mesh) 
    138    val = ("{:" + self.fmt + "}").format(val) 
    139    ax.text(x, y, val, color=text_color, 
--> 140      ha="center", va="center", **self.annot_kws) 
    141 
    142  def plot(self, ax, cax, kws): 

/opt/anaconda/2.3.0/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc in text(self, x, y, s, fontdict, withdash, **kwargs) 
    590   if fontdict is not None: 
    591    t.update(fontdict) 
--> 592   t.update(kwargs) 
    593   self.texts.append(t) 
    594   t._remove_method = lambda h: self.texts.remove(h) 

/opt/anaconda/2.3.0/lib/python2.7/site-packages/matplotlib/artist.pyc in update(self, props) 
    755    func = getattr(self, 'set_' + k, None) 
    756    if func is None or not six.callable(func): 
--> 757     raise AttributeError('Unknown property %s' % k) 
    758    func(v) 
    759    changed = True 

AttributeError: Unknown property tokenized 

kwsは、私は、スタックトレースの行に渡している属性は、辞書であり、それはこのように、基本的になります。

kws = {'Foo': -0.231049060187, 'Bar': 0.0} 

ホープすべてが理にかなっている、と私は思います誰でも助けることができますように感謝します。 Seabornで

+0

この問題を解決できましたか? – Tom

+0

残念ながら.. – Tgsmith61591

答えて

関連する問題