今回はploltyで出る「keyerror ‘C1’」の対処法に関して簡潔に解説していきます。
このエラーを解決するのはさほど手間ではないので、もしplotlyを使う上で困っている方の参考になれば幸いです。
エラー発生の経緯
jupyter labでplotlyのcreate_dendrogramを実行すると以下のエラーが発生しました。
1 2 3 4 5 6 7 8 |
~/miniconda3/envs/jupyterlab_new/lib/python3.8/site-packages/plotly/figure_factory/_dendrogram.py in get_dendrogram_traces(self, X, colorscale, distfun, linkagefun, hovertext, color_threshold) 335 y=np.multiply(self.sign[self.yaxis], ys), 336 mode="lines", --> 337 marker=dict(color=colors[color_key]), 338 text=hovertext_label, 339 hoverinfo="text", KeyError: 'C1' |
「KeyError C1」なので辞書のキーである「C1」に異常があるということですが、コードはそのようなキーを使っていないので、ほかにエラーの原因がありそうですね。
エラーの原因
このエラーを解決するにあたり以下のサイトを参考にしました。
このサイトに書いてある内容は次の通り
python 3.7.3でエラーを再現できないので、バージョンの問題だろうね。
scipy 1.4.1ならエラーが出なかったよ。
‘C1’は色のことだね。
つまり、scipyのバージョンが原因とのことですね。
エラー文を読んでもcolorの文字が見て取れるので、何かしらの色を設定する際に使われているキーとしてC1が使われていて、それがバージョンの違いによってうまく動作しなかったということでしょう。
解決法
バージョン違いということが分かれば後は簡単ですね。pipを使ってバージョンを指定してインストールするだけです。
1 |
pip install scipy==1.4.1 |
あとは、インストール完了後、jupyter labを再起動すると無事エラーが解消されていました。めでたしめでたしですね。
もともと入っていたscipy==1.5.2をアンインストールしてからの方がいいのかもしれませんが、今回はしなくても問題なく動作しました。
まとめ
いかがでしか、今回はバージョンの違いによるエラーの解説でした。
プログラミングをする上ではエラーの対称は欠かせません。初心者のうちはコードの中にエラーを見つけることが多いですが、今回のようなエラーに初めて遭遇したときはバージョンの違いによるものだと思いつきにくいですよね。
でも、一度気付ば対処は簡単なので焦らず解決していきましょう。