Matplotlib将某些字符打印为空白squ

2024-05-23 16:25:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读一些照片,并采取与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

我的目标是绘制的图形与“组标签”列表中的文字相同。你知道吗


Tags: 文本import脚本图形labelsas图表group
1条回答
网友
1楼 · 发布于 2024-05-23 16:25:52

正如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

相关问题 更多 >