BUG: legend behaves inconsistently when plotting to the same axes by sinhrks · Pull Request #6678 · pandas-dev/pandas (original) (raw)

There seems to be some inconsistencies related to DataFrame.plot and Series.plot legend behaviors.

Fix:
I've prepared a fix based on following concept, except hexbin which doesn't use legend.

df1 = DataFrame(randn(6, 3), index=range(6), columns=['a', 'b', 'c'])
df2 = DataFrame(randn(6, 3), index=range(6), columns=['d', 'e', 'f'])
df3 = DataFrame(randn(6, 3), index=range(6), columns=['x', 'y', 'z'])

fig, axes = plt.subplots(1, 5, figsize=(14, 3))
for i, (legend, df) in enumerate(zip([True, False, 'reverse'], [df1, df2, df3])):
    df.plot(ax=axes[0],  legend=legend, title='line')
    df.plot(kind='bar', ax=axes[1], legend=legend, title='bar')
    df.plot(kind='barh', ax=axes[2],  legend=legend, title='barh')
    df.plot(kind='kde', ax=axes[3],  legend=legend, title='kde')
    df.plot(kind='scatter', ax=axes[4], x=df.columns[0], y=df.columns[1], label=i, 
        legend=legend, title='scatter')
plt.show()

If there is anything should be considered, please let me know. Thanks.