matplotlibの.colorbar()でカラーバーが表示されない

投稿者: Anonymous

matplotlibの散布図のカラーマッピングにおいて,plt.colorbar()を散布図プロット後にしているのですが,そこで以下のエラーが発生し,描画できません.
以下のサイトを参考にしたのですが,,,

一方で,plt.colorbar()をコメントアウトするとカラーバーが無い散布図のカラーマッピングが描画できます.

カラーバーを表示させる方法を教えてください.よろしくお願いいたします.

Pythonのグラフプロットのコードは以下
medi_paTV_lnaTV[][N, M]のリストは,len(paTVarr) == Nlen(lnaTVarr) == Mの2次元配列)

import matplotlib.pyplot as plt    
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
# ========= カラー散布図を描画 =========
for i, item in enumerate(medi_paTV_lnaTV[0]):
    ax.scatter(np.full(len(paTVarr), paTVarr[i]).tolist(), lnaTVarr, c=medi_paTV_lnaTV[i], s=100, cmap=cm.jet, edgecolors=None)
plt.colorbar()  # => ここでエラー発生
# ===================================

発生したエラーは以下

$ python make_corrCoef_data.py 
Traceback (most recent call last):
  File "make_corrCoef_data.py", line 58, in <module>
    plt.colorbar()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 2114, in colorbar
    raise RuntimeError('No mappable was found to use for colorbar '
RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf).

解決

xx = plt.gca()PCM = ax.get_children()[2]plt.colorbar(PCM, ax=xx)plt.colorbar()の手前に挿入することで解決しました.参考URL:https://stackoverflow.com/questions/23090791/matplotlib-colorbar-not-working-due-to-garbage-collection

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *