它背后的想法不是很难,但是为了使其能够显示(至少在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
白色从白色更改为您想要的颜色…以获取更多详细信息检查文档。