相关疑难解决方法(0)

如何在matplotlib中绘制(高质量)表情符号?

我有以下字典:

a = {'?': 10, '???': 23, '': 13, '': 10, '': 13}
Run Code Online (Sandbox Code Playgroud)

我想将表情符号绘制为条形图,然后在条形图上绘制它们.起初我喜欢这里(带annotate),但它看起来很糟糕,而且它不支持一些表情符号.

import matplotlib.pyplot as plt
ax = plt.subplot(111)
ax.bar(range(1,6), a.values())
for label, x, y in zip(a.keys(), range(1,6), a.values()):
    plt.annotate(
        label, 
        xy=(x, y), xytext=(10,10),
        textcoords='offset points', ha='right', va='bottom',
        bbox=dict(boxstyle='round,pad=0.5', alpha=0),
        fontname='Segoe UI Emoji',
        fontsize=20)

ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.set_xticks([])
plt.show()
Run Code Online (Sandbox Code Playgroud)

正如我所说,看起来很糟糕:

在此输入图像描述

我如何绘制表情符号,以便matplotlib看起来很好看?

最好的办法是使用不同的字体在matplotlib将支持这些表情符号(我试图用一些不同的值plt.rcParams['font.family'],但没有成功),但如果不存在,它图像将工作太(但如何?)

我不想开始网络抓取图像并标记它们(因为我很确定有人已经这样做了).

我正在使用python 3,Spyder IDE,matplotlib版本2.0.2和anaconda.

有什么建议?

python plot matplotlib emoji

11
推荐指数
0
解决办法
2363
查看次数

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

我正在使用networkX从距离矩阵(emoji_sim,DataFrame)绘制网络图.这是代码:

G = nx.from_numpy_matrix(np.array(emoji_sim))
nx.draw(G, edge_color='silver', node_color='lightsalmon', with_labels=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以将节点重新标记为:

G = nx.relabel_nodes(G, dict(zip(range(len(G.nodes())), range(1, len(G.nodes())+1))))   
Run Code Online (Sandbox Code Playgroud)

但我想用节点标签替换图像(可能从文件中读取或使用Python表情符号包).有没有办法做到这一点?非常感谢!

为了澄清,我试图用图像替换实际的圆圈.

python data-visualization networkx

3
推荐指数
1
解决办法
908
查看次数

标签 统计

python ×2

data-visualization ×1

emoji ×1

matplotlib ×1

networkx ×1

plot ×1