はじめに
matplotlibのax.legend()で表示できる凡例の順を逆にする方法について説明する。
コード&解説
モジュールのインポートなど
バージョン
データの生成
np.random.random(len(x))でランダムデータを作成する。
ax.legend()で凡例を表示
ax.legend()で凡例を表示すると以下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2023/01/legend_sort1.jpeg)
プロットは上からC,B,Aの順となっているが、凡例は上からA,B,Cとなっている。
データを動かせないので、凡例を逆順にしたいという気持ちが湧いてくる。
凡例を逆順にして表示
axにプロットしたものから、ax.get_legend_handles_labels()で凡例に関する情報を取得する。handlesはプロットの形で、labelsにはラベル情報が入る。
ax.legend(handles=handles[::-1],labels=labels[::-1])のようにhandlesとlabelsをそれぞれ[::-1]で逆順に設定することで、凡例を逆順にできる。
![](https://sabopy.com/wp/wp-content/uploads/2023/01/legend_sort2.jpeg)
2つ並べて表示
横に並べて表示すると以下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2023/01/legend_sort3-800x300.jpg)
参考
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9bWF0cGxvdGxpYiVFMyU4MSVBRSVFNSU4NyVBMSVFNCVCRSU4QiVFRiVCQyU4OGxlZ2VuZCVFRiVCQyU4OSVFMyU4MyVBQyVFMyU4MiVBNCVFMyU4MiVBMiVFMyU4MiVBNiVFMyU4MyU4OCVFOSU5NiVBMiVFOSU4MCVBMyVFMyU4MyVBMSVFMyU4MyVBMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9NDkzYjRiMmI1NjI0NWEyYTI5MzAwOWQxZjJiNGQyOTY&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBIaWRLYW1peWEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWEyMDMwZTY5OGM4NmMwNDI3ZGU5YTg0MjU2OTgyNzdh&blend-x=142&blend-y=486&blend-mode=normal&s=6eb2d6a5e835fb075b93941668afc831)
matplotlibの凡例(legend)レイアウト関連メモ - Qiita
凡例の表示、曲線の選択ax.legend()にオプションを何も含めない場合。import matplotlib.pyplot as pltimport numpy as npx = np.l…
コメント