pandas.DataFrame.plot(): Labels do not appear in legend · Issue #9542 · pandas-dev/pandas (original) (raw)
The following code plots two lines. The column names appear in the legend.
x=np.linspace(-10,10,201) y,z=np.sin(x),np.cos(x) x,y,z=pd.Series(x),pd.Series(y),pd.Series(z) df=pd.concat([x,y,z],axis=1) df.columns=['x','sin(x)','cos(x)'] df=df.set_index('x') df.plot() plt.show() plt.clf();plt.close()
However, the following equivalent code shows None as legend, even though the labels are explicitly set.
ax=df.plot(y='sin(x)',label='sin(x)') df.plot(y='cos(x)',label='cos(x)',ax=ax) plt.show()
Of course there are alternative ways to make this work, but it appears to me that passing the labels should suffice. In particular, I don't think their values should be replaced with None, or printed as x-label.