2013-05-29 99 views
3

此代码:添加标签轮廓

import numpy as np 
import matplotlib.pyplot as plt 

plt.contourf(np.random.random((10,10)), label='my_label') 
plt.legend() 

产生这样的警告:

warnings.warn( “没有标记的对象找到。”)

有谁知道如何标签轮廓?
我只想在自动生成的绘图窗口内生成的轮廓注释最简单的方法。

+0

HTTP:// matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.contourf在这里做例子做你想做的事情?我对你使用图例感到困惑,并且说你想要注释曲线。 – tacaswell

+0

这些填充的轮廓。在你的链接的例子,这是等高线上的古典传说。我不想这样做。我想为剧情命名,但不是使用'title()',它将出现在剧情窗口之外,而是出现在剧本窗口之外。我想像标签一样尝试使用标签,但它不起作用。 – theta

+0

好的,我想我可以用'annotate()'函数做到,然后我将它作为答案。 – theta

回答

2

我以前annotate()功能标记我充满轮廓:

screenshot

在上面的代码中,而是plt.legend()我用:

plt.annotate('my_label', (8, 1), backgroundcolor='w')

因此,只有额外的考虑相比label参数,用户需要知道文本的位置坐标。或者我想。

更新:作为评价建议的,用户可以选择axes fraction类型xycoords参数和在范围[0,1]使用相对参考设定强制性xy点参数:

plt.annotate('my_label', (.9, .1), xycoords='axes fraction', backgroundcolor='w')

+0

啊,根本不理解你的问题;)你可以使用带有注释的轴单元,http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.annotate在kwarg'xycoords'上查看文档和'textcoords' – tacaswell

+0

是的,这就是为什么我写了这个用户需要知道情节坐标(数组形状),而标签可以放置没有这样的考虑(即'左上','中心','最好'等) – theta

+0

您正在使用数据坐标。轴坐标从[[0,0]](左下)到[[1,1]](右上),并且是轴高度和宽度的一部分。 – tacaswell