Matplotlib 向轮廓添加标签
此代码:Matplotlib 向轮廓添加标签,matplotlib,Matplotlib,此代码: import numpy as np import matplotlib.pyplot as plt plt.contourf(np.random.random((10,10)), label='my_label') plt.legend() 产生以下警告: warnings.warn(“未找到带标签的对象”) 有人知道如何标记轮廓吗? 我只想以最简单的方式在绘图窗口内对自动生成的等高线进行注释。我使用该函数标记填充的等高线: 在上面的代码中,我使用了: plt.annotate
import numpy as np
import matplotlib.pyplot as plt
plt.contourf(np.random.random((10,10)), label='my_label')
plt.legend()
产生以下警告:
warnings.warn(“未找到带标签的对象”)
有人知道如何标记轮廓吗?我只想以最简单的方式在绘图窗口内对自动生成的等高线进行注释。我使用该函数标记填充的等高线: 在上面的代码中,我使用了:
plt.annotate('my_label',(8,1),backgroundcolor='w')
因此,与label
参数相比,唯一需要考虑的是,用户需要知道文本位置的坐标。我想大概是这样
更新:根据注释中的建议,用户可以为xycoords
参数选择axes fraction
类型,并使用范围[0,1]中的相对参考来设置强制xy
点参数:
plt.annotate('my_label',(.9,.1),xycoords='axes fraction',backgroundcolor='w')
这里的示例是否符合您的要求?我对你使用图例和说你想注释曲线感到困惑。这些是填充轮廓。在您的链接示例中,这是轮廓线上的经典图例。我不想那样做。我想命名绘图,但不是使用title()
,它将显示在绘图窗口外部,而是内部。我想尝试使用标签,就像在常规绘图中一样,但它不起作用。好的,我想我可以使用annotate()
函数,然后我会将其作为答案发布?啊,根本不明白你的问题;)您可以使用带有注释的轴单位,请参见kwargxycoords
和textcoords
上的文档,这就是为什么我写道用户需要知道打印坐标(数组形状),而标签可以在不考虑这些因素的情况下定位(即“左上”、“中心”、“最佳”等),您使用的是数据坐标。轴坐标从[0,0]
(左下)到[1,1]
(右上)并且是轴高度和宽度的分数。谢谢@tcaswell,我更新了我的答案以包含您的发现。