Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打印打印字符串时,字符之间出现空格_Python_Matplotlib - Fatal编程技术网

Python 打印打印字符串时,字符之间出现空格

Python 打印打印字符串时,字符之间出现空格,python,matplotlib,Python,Matplotlib,我正在用pyplot制作一个图形,其中打印了一个字符串,每个字符都放在字符串索引的x位置。 我正在将该图保存为pdf格式,但不知何故在某些字符之间添加了空格 下面是一个最小的代码: 导入matplotlib.pyplot作为plt 字符串=(“QWERTZUIOPASDFGHJKLYXCVBNM”) plt.xlim(0,len(字符串)) 对于索引,枚举中的字母(字符串): plt.text(索引,.5,字母) plt.savefig(“fig.pdf”) 如果我运行代码,在最终的pdf中,

我正在用pyplot制作一个图形,其中打印了一个字符串,每个字符都放在字符串索引的x位置。 我正在将该图保存为pdf格式,但不知何故在某些字符之间添加了空格

下面是一个最小的代码:

导入matplotlib.pyplot作为plt
字符串=(“QWERTZUIOPASDFGHJKLYXCVBNM”)
plt.xlim(0,len(字符串))
对于索引,枚举中的字母(字符串):
plt.text(索引,.5,字母)
plt.savefig(“fig.pdf”)
如果我运行代码,在最终的pdf中,在第一个和第二个字母(Q和W)之间,在第三个和第四个字母(E和R)之间,有一个空格,依此类推


任何人都知道为什么会发生这种情况,以及我如何避免这种情况?

显然,
I
W
宽得多。所以间距是不同的。如果要更均匀地分配这些间距,请考虑中心对齐字母

plt.text(index, .5, letter, ha="center")

也可以考虑使用单字形字体,即每一个字母宽度相等的字体,例如

plt.text(index, .5, letter, ha="center", 
         fontproperties=FontProperties(family='Consolas'))

对于空格,我指的是实际的空格字符,而不仅仅是“字母之间的空格”。在这两种情况下,字母之间仍然有空格字符。使用单空格字体时,每个字符之间甚至有一个空格。我的意思是,如果我打开文件并复制文本,我会得到如下结果:Q WE R T Z U I O P A S D F G H J K L Y X C V B N M正如你所看到的,有一些空格字符(例如,在Q和W之间)没有出现在初始字符串中。文本不是单个文本,而是26个单独的文本。如何将这些文本复制到剪贴板由用于复制的应用程序控制。例如,当使用Foxit pdf reader时,复制的文本是
Q W R T Z U I O P A S D F G H J K L Y X C V B N M
。哦,我明白了。那我就无能为力了,对吧?我现在不知道这里的最终目的是什么。为什么不在matplotlib中创建一个文本呢?我想稍后再创建第二行(比如y=.6),其中文本字符串中某些字符的x处有一个星号,以便突出显示这些字符。出于这个原因,我认为在一个确定的x位置打印每个字符是很重要的。理想情况下,最终的pdf应该是“可搜索的”,这意味着我可以搜索子字符串并应该找到它们(现在被空格字符阻止)。