如何插入不重叠的文本

13

我正在尝试将使用matplotlib创建的网络图中的潮流结果插入其中。由于有些总线之间非常接近,因此在标记名称和功率流结果时遇到了很大的困难,因为文本重叠使得某些部分无法阅读。

是否有一些方法可以使用文本的边界框来确定文本是否与绘图线和/或其他文本重叠?


在matplotlib-users邮件列表中有一些关于类似问题的讨论。请参见此处 - tiago
你尝试过 plt.tight_layout() 吗? - Kennet Celeste
我们在get_clear()函数中做了类似的事情:https://sourceforge.net/p/spacepy/code/ci/master/tree/spacepy/plot/utils.py#l954 - Brian Larsen
在这里添加了一个解决方案:https://dev59.com/nJzha4cB1Zd3GeqPJLUk#40750168 - kabanus
1个回答

5
这个问题并不简单,因为它是自动标签放置问题的一个例子,这个问题是NP-hard(即没有快速算法可以保证解决这个问题)。甚至Google和OpenStreetMaps也没有完美的解决方案!
潜在的解决方案包括隐藏较不重要元素的连接或标签,渲染一系列图像,每个图像包含一部分标签/连接,并在不同的缩放级别下渲染图像。 Sklearn教程可视化股票市场结构提供了一些简单启发式方法的标签放置示例。
你还可以在GIS stack exchange中查看类似的问题已经被问到那里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接