不,matplotlib中没有内置的方法可以做到这一点。您应该居住在默认位置,或者完全手动使用鼠标进行交互。
您可能希望将此文件作为错误报告提交到上游,以便他们改进算法。
有多种解决方法。第一个是通过编程将文本放置在轮廓图上。这样,您将无法可靠地删除文本下方的行。假设您有轮廓
c,则可以在中找到轮廓线
c.collections。对于每个轮廓线,请调用
get_paths并将文本放置在该路径上。
另一个选择是替换用于手动放置的代码(在中
matplotlib.contour.BlockingContourLabeler)或调整找到标签位置的代码(在中
matplotlib.contour.locate_label),但是这两个函数都很密集。如果您能提出可行的替代方案,而
locate_label只是覆盖绘图宏中的旧方法
def your_locate_label(self, linecontour, labelwidth): # some magic passar = np.array([[1,0], [0,1]]c = matplotlib.contour(ar)c.locate_label = your_locate_labelc.clabel()
顺便说一句,如果您使用的
ipython话,您可以轻松地从您的交互式会话中查看函数源
%psource c.clabel
或直接使用
$EDITOR定义的文件调用您的文件
%edit c.clabel



