如何在IPython笔记本内部的Matplotlib中为xy折线图添加图例?我目前的尝试:
x = np.linspace(0, 3*np.pi, 500)
a = plt.plot(x, np.sin(x**2))
b = plt.plot(x, np.sin(x**0.5))
plt.legend([a,b], ['square', 'square root'])
这样做,我收到以下错误:
/Users/mc/.virtualenvs/kaggle/lib/python2.7/site-packages/matplotlib/legend.py:613: UserWarning:Legend不支持[]使用代理艺术家。
http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist
(STR(orig_handle))) /Users/mc/.virtualenvs/kaggle/lib/python2.7/site-packages/matplotlib/legend.py:613: UserWarning:Legend不支持[]使用代理艺术家。
http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist
(STR(orig_handle)))
如果我plt.scatter
代替plt.plot
,此命令有效,但我想要一个折线图而不是x,y点。
答案 0 :(得分:2)
这样做怎么样?
x = np.linspace(0, 3*np.pi, 500)
fig, ax = plt.subplots()
a = ax.plot(x, np.sin(x**2), label = 'square')
b = ax.plot(x, np.sin(x**0.5), label = 'square root')
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles, labels)
要得到这个: