Matplotlib xy线图传奇

时间:2014-02-25 06:11:35

标签: python matplotlib plot kaggle

如何在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点。

1 个答案:

答案 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)

要得到这个:

enter image description here