Matplotlib чертит некоторых персонажей как пустой квадрат - PullRequest
1 голос
/ 05 июля 2019

Я читаю несколько фотографий и снимаю текст с помощью OCR.Теперь мне нужно упорядочить прочитанный текст в некотором графике, чтобы увидеть какой-то шаблон.Но когда я пытаюсь нанести эти тексты на график, вместо некоторых символов появляются пустые квадраты.Я делюсь примером того, что я сделал с помощью скрипта:

Это пример скрипта:

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
y = [0,1,2,3]
group_labels = ['77 7 7 7\r\nlfISldI\r\n\r\n',
                'G217\r\nini\r\n\r\n', 
                'L519\r\nini\r\n\r\n',
                'QED\r\n\r\n']

ax.set_yticks(y)
ax.tick_params(axis='both', which='major', labelsize=15)
ax.set_yticklabels(group_labels, minor=False)

plt.show()

Это график, который он генерирует:

Jupyter notebook output

Моя цель - чтобы на графике был тот же текст, что и в списке 'group_labels'.

1 Ответ

0 голосов
/ 06 июля 2019

Как указано в комментариях ImportanceOfBeingErnest, проблема заключается в \r символах, matplotlib не может их интерпретировать, поэтому он печатает эти блоки, если вы удалите их, то результат будет тем, что вы ожидаете, т.е. измените

group_labels = ['77 7 7 7\r\nlfISldI\r\n\r\n',
                'G217\r\nini\r\n\r\n', 
                'L519\r\nini\r\n\r\n',
                'QED\r\n\r\n']

до

group_labels = ['77 7 7 7\nlfISldI\n\n',
                'G217\nini\n\n', 
                'L519\nini\n\n',
                'QED\n\n']

и он выдаст

Plot with carriage returns removed

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...