Matplotlib将某些字符绘制为空白正方形

时间:2019-07-05 19:51:47

标签: python matplotlib jupyter-notebook

我正在阅读一些照片,并使用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 :(得分:0)

正如ImportanceOfBeingErnest在评论中指出的那样,问题是\r字符,matplotlib无法解释它们,因此它会打印这些框,如果删除了这些框,则输出是您期望的,即更改< / p>

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

相关问题