NetworkX图边标签在PyQt嵌入的Matplotlib中无法显示的问题
问题解决方法
导致边标签无法显示的核心原因是调用nx.draw_networkx_edge_labels时未显式指定渲染用的坐标轴对象,独立使用matplotlib时会默认取全局活跃axes,嵌入PyQt自定义画布场景下必须绑定你创建的dataWidget.axe对象才能正常渲染。
修复步骤
只需要修改_drawDataGraph方法中绘制边标签的一行代码,补充ax参数即可:
# 原错误代码 # nx.draw_networkx_edge_labels(DG, pos, edge_labels=labels) # 修改后代码 nx.draw_networkx_edge_labels(DG, pos, edge_labels=labels, ax=dataWidget.axe)
补充优化(可选)
如果出现边标签被画布边缘截断的情况,可以适当调整画布边距参数,修改data_tab初始化时的subplots_adjust配置即可:
self.canvas.figure.subplots_adjust(left=0.1, top=0.9, bottom=0.1, right=0.9)
修改完成后重新运行代码,边标签即可正常显示在PyQt嵌入的图中,和预期效果一致。
内容的提问来源于stack exchange,提问作者ThylowZ
相关产品推荐
相关产品推荐

