您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用networkX用表情符号替换节点标签

在Python中使用networkX用表情符号替换节点标签

它背后的想法不是很难,但是为了使其能够显示(至少在ubunto上),它给了我一些麻烦,因为并非所有字体都支持表情符号。我将显示简单明了的方式,然后显示一些最终对我有帮助的链接(也许您将不需要这些链接)。

从表情符号python包表情符号备忘单中,我挑选了三个作为示例,这是代码

G = nx.Graph()
G.add_nodes_from([0,1,2])
n0 = emoji.emojize(':thumbsup:',use_aliases=True)
n1 = emoji.emojize(':sob:',use_aliases=True)
n2 = emoji.emojize(':joy:',use_aliases=True)
labels ={0:n0,1:n1,2:n2}
nx.draw_networkx(G,labels=labels, node_color = 'w', linewidths=0, with_labels=True, font_family = 'Symbola' ,font_size = 35)    
plt.show()

1-我的机器在ubunto 14.04上,我无法显示它们总是显示为矩形的任何表情符号

使用以下命令(此处提及)安装所需的字体 :

sudo apt-get install ttf-ancient-fonts

2- Maplotlib(networkx调用绘制)未使用安装的字体。

通过几次有用的讨论我将Symbola的.tff字体文件复制并粘贴到认的matplotib目录中(该目录中会提取要使用的字体)。

cp /usr/share/fonts/truetype/ttf-ancient-scripts/Symbola605.ttf /usr/share/matplotlib/mpl-data/fonts/ttf

然后,我必须删除fontList.cache文件才能加载新字体。

rm ~/.cache/matplotlib/fontList.cache

您可以通过将输入更改为draw_networkx来获得不同的视图,例如,不发送linewidths将为每个节点显示圆形边框的视图,也如果您希望节点的特定背景颜色将color_node白色从白色更改为您想要的颜色…以获取更多详细信息检查文档

python 2022/1/1 18:45:22 有321人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶