Как построить (высококачественный) смайлик в matplotlib?

У меня есть следующий словарь:

a = {'❤': 10, '????‍????‍????‍????': 23, '????': 13, '????????': 10, '????': 13}

Я хочу изобразить смайлики в виде полосы и нарисовать их на полосе. Сначала мне понравилось здесь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()

Как я уже сказал, выглядит плохо:

введите описание изображения здесь

Как я могу нарисовать смайлики так, чтобы они хорошо смотрелись с matplotlib?

Лучшим вариантом было бы использование другого шрифта в matplotlib, который будет поддерживать эти смайлики (я безуспешно пытался использовать некоторые другие значения для plt.rcParams['font.family']), но если его не существует, изображения тоже будут работать (но как?)

Я не хочу начинать парсить изображения и маркировать их (потому что я почти уверен, что кто-то уже это сделал).

Я использую python 3, Spyder IDE, matplotlib версии 2.0.2 с anaconda.

Какие-либо предложения?


person sheldonzy    schedule 03.11.2017    source источник
comment
да, вам нужно использовать шрифт, который их поддерживает.   -  person juanpa.arrivillaga    schedule 03.11.2017
comment
Спасибо. Я использовал шрифт и отредактировал свой вопрос.   -  person sheldonzy    schedule 05.11.2017
comment
catherineh.github.io/programming/2017/ 24.10.   -  person ImportanceOfBeingErnest    schedule 07.06.2018
comment
Это можно решить здесь: github.com/matplotlib/matplotlib/issues/4492 также см. этот вопрос   -  person ImportanceOfBeingErnest    schedule 07.06.2018
comment
Привет @sheldonzy.. Я тоже столкнулся с этой проблемой! у вас есть живой пример? что я могу сослаться!. Спасибо!   -  person Shivali Patel    schedule 25.06.2018
comment
Нет простите. Посмотрите, что написал парень над вами.   -  person sheldonzy    schedule 25.06.2018
comment
Этот вопрос не должен быть закрыт, ссылки, приведенные из него, старые и непростые для перехода, неясно, что это вообще дубликат.   -  person baxx    schedule 01.05.2020
comment
@baxx Да, я согласен. Я продолжаю получать голоса по этому вопросу, поэтому я предполагаю, что люди достаточно подходят к этому вопросу. Я проголосовал за повторное открытие этого вопроса.   -  person sheldonzy    schedule 02.05.2020
comment
@ImportanceOfBeingErnest, если предположить, что вы изначально проголосовали за закрытие этого вопроса - я думаю, вы ошибались, делая это.   -  person baxx    schedule 02.05.2020
comment
Я не думаю, что голосовал за закрытие этого, но, честно говоря, я не помню, что я делал 2,5 года назад. В любом случае вы можете хотя бы отредактировать вопрос, чтобы показать, насколько существующие решения не работают для вас - всегда при условии, что вы используете шрифт, который должен фактически содержать символ, который вы хотите использовать. .   -  person ImportanceOfBeingErnest    schedule 02.05.2020
comment
@ImportanceOfBeingErnest Дело в том, что это не существующие решения? Они представляют собой мешанину из связанных вещей, поэтому неправильно, чтобы кто-то помечал их как дубликат. Единственное, что я мог придумать, это могло бы улучшить это, если бы это было явно об эмодзи, а не об изображениях ... Я мог бы просто опубликовать это, думая об этом.   -  person baxx    schedule 03.05.2020
comment
@baxx Итак, причина, по которой в вопросе используются прямоугольники вместо символов, заключается в том, что этих символов не существует в выбранном шрифте. Итак, я думаю, что дубликаты достаточно отвечают на этот вопрос?   -  person ImportanceOfBeingErnest    schedule 04.05.2020
comment
@ImportanceOfBeingErnest Я постараюсь пройтись по нему в эти выходные, когда у меня будет больше времени, потому что раньше я интересовался этим, нашел эту ветку и, честно говоря, не нашел понятных ссылок. То, что вы говорите о шрифтах, имеет смысл, если я смогу легко заставить это работать, я предложу отредактировать этот OP, я думаю (не уверен, что лучше всего сделать), как это появляется в Google, и не было ясно, чтобы решить для меня, по крайней мере, когда я ранее смотрел. Спасибо   -  person baxx    schedule 04.05.2020
comment
Я слышал, что вам нужно установить бэкэнд mplcairo, который обновляет поддержку цветных смайликов, я сделал это, но пока не смог понять, он либо дает мне черно-белые смайлики, либо выдает ошибку.   -  person Veggiet    schedule 17.09.2020