matplotlibのエラー 'str' object is not callable

Jupyter notebookでpythonを書いているときにこのエラーが起きた.

エラーの状況

一度書いていたpythonのコードのmatplotlibを使っている部分に

plt.xlabel("m")

みたいなことを書くと'str' object is not callableというエラーでxlabel()が使えなくなっていたのだ.

おそらくの原因

コードを実行する前に間違って

plt.xlabel = "m"

などとしてしまったせいで plt.xlabel は関数だったのに string型の"m" で上書きしてしまったことが原因だ (pythonみたいな言語はこういうのが通ってしまう).

解決法

つまり plt.xlabel という変数に上書きしてしまったことが原因なのでそこを直さないといけない. jupyter のような逐次実行の状態だとmatplotlib.pyplot (ここではplt)のxlabelという変数をリセットするには開いているjupyter notebookをリセットしなくてはいけない.

よって解決するには

一旦今開いているインタプリタ(僕の場合はJupyter notebookのファイル)を閉じて再起動すれば良い.

つまりJupyter notebookならまず一旦saveして, 左上の "ファイル" から "close and halt" でファイルを閉じて, もう一度そのファイルを起動すれば難なく動いた.

python - Matplotlib pyplot.title(string) returns error - Stack Overflow

ここのAnswerを参考にした.