1. ホーム
  2. python

pandas棒グラフの凡例を修正する

2023-09-22 04:20:30

質問

pandasで棒グラフを作成し、凡例のラベルの名前を変更したいとき、いつも悩まされます。例えば、このコードの出力を考えてみてください。

import pandas as pd
from matplotlib.pyplot import *

df = pd.DataFrame({'A':26, 'B':20}, index=['N'])
df.plot(kind='bar')

さて、凡例で名前を変えたい場合、普通はこうしようと思います。

legend(['AAA', 'BBB'])

でも、結局こうなってしまうんです。

実際、最初の破線は追加パッチに対応しているようです。

ラベルを変更する簡単なトリックがあるのか、それともmatplotlibで各列を独立してプロットし、ラベルを自分で設定する必要があるのか、疑問に思っています。ありがとうございます。

どのように解決するのですか?

Pandasのラベルを変更するには df.plot() 使用 ax.legend([...]) :

import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
df = pd.DataFrame({'A':26, 'B':20}, index=['N'])
df.plot(kind='bar', ax=ax)
#ax = df.plot(kind='bar') # "same" as above
ax.legend(["AAA", "BBB"]);

別のアプローチとして、同じように plt.legend([...]) :

import matplotlib.pyplot as plt
df.plot(kind='bar')
plt.legend(["AAA", "BBB"]);