Matplotlib 凡例の要素の順序を変更する方法
次のコードを使用して、Matplotlib 凡例の要素の順序を変更できます。
#get handles and labels handles, labels = plt. gca (). get_legend_handles_labels () #specify order of items in legend order = [1,2,0] #add legend to plot plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])
次の例は、この構文を実際に使用する方法を示しています。
例: Matplotlib 凡例の要素の順序を変更する
Matplotlib で次の折れ線グラフを作成するとします。
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8], 'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]}) #add lines to plot plt. plot (df['points'], label='Points', color='green') plt. plot (df['assists'], label='Assists', color='steelblue') plt. plot (df['rebounds'], label='Rebounds', color='purple') #add legend plt. legend ()
凡例要素は、プロットに線を追加した順序で配置されます。
ただし、次の構文を使用して、凡例内の要素の順序をカスタマイズできます。
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8], 'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]}) #add lines to plot plt. plot (df['points'], label='Points', color='green') plt. plot (df['assists'], label='Assists', color='steelblue') plt. plot (df['rebounds'], label='Rebounds', color='purple') #get handles and labels handles, labels = plt. gca (). get_legend_handles_labels () #specify order of items in legend order = [1,2,0] #add legend to plot plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])
以下を指定したことに注意してください。
- 次数 = [1, 2, 0]
つまり:
- 凡例の最初の項目は、元々古い凡例のインデックス位置1にあったラベル (「ヘルプ」) である必要があります。
- 凡例の 2 番目の要素は、元々古い凡例のインデックス位置2にあったラベル (「バウンス」) である必要があります。
- 凡例の 3 番目の要素は、元々古い凡例のインデックス位置0にあったラベル (「ポイント」) である必要があります。
追加リソース
次のチュートリアルでは、Matplotlib で他の一般的な操作を実行する方法を説明します。
Matplotlib で凡例の位置を変更する方法
Matplotlib プロットの外側に凡例を配置する方法
Matplotlib で凡例のフォント サイズを変更する方法