Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
使用matplotlib打印时具有相同大小的图像?_Matplotlib - Fatal编程技术网

使用matplotlib打印时具有相同大小的图像?

使用matplotlib打印时具有相同大小的图像?,matplotlib,Matplotlib,我想用大量的图像(确切地说是28幅)进行绘图,我尝试过用脚本读取图像并进行绘图,但是我如何才能以相同的大小和文本对齐方式显示图形?我不想看到变形的数字。我不知道我需要在脚本中做哪些更改。我不知道,我正在学习python。 图像大小不同。 这是我的剧本 import matplotlib.pyplot as plt import matplotlib.image as mpimg from matplotlib import rcParams import numpy as np impor

我想用大量的图像(确切地说是28幅)进行绘图,我尝试过用脚本读取图像并进行绘图,但是我如何才能以相同的大小和文本对齐方式显示图形?我不想看到变形的数字。我不知道我需要在脚本中做哪些更改。我不知道,我正在学习python。 图像大小不同。 这是我的剧本

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from matplotlib import rcParams  
import numpy as np 
import matplotlib.gridspec as gridspec

from pylab import text

font = {'family' : 'Helvetica',
        'size'   : 24}

plt.rc('font', **font)

# figure size in inches optional
rcParams['figure.figsize'] = 15,5

# read images (are 28 figures)
img_1 = mpimg.imread('path/file1.png')
...
...
img_27 = mpimg.imread('path/file27.png')


# display images
fig, ax = plt.subplots(4,9, figsize=(14,6))

#fig.suptitle('Main title')
ax[0,0].imshow(img_1, aspect="auto");
ax[0,0].axis('off')
ax[0,0].title.set_text('HHP')
...
...
...
ax[2,8].imshow(img_27, aspect="auto");
ax[2,8].axis('off')
ax[2,8].title.set_text('SP10')

#imagen of the bar index
ax[3,0].imshow(img_28, aspect="auto");
ax[3,1].axis('off')
ax[3,2].axis('off')
ax[3,3].axis('off') 
ax[3,4].axis('off')
ax[3,5].axis('off')
ax[3,6].axis('off')
ax[3,7].axis('off')
ax[3,8].axis('off') 
ax[3,0].axis('off')
ax[3,0].set_position([0.27,0.2, 0.48, 0.05])

#text(-9.08, 0.6, r'$\bf{N-terminus}$', color='black', fontsize=28, fontname='Helvetica')
#text(-0.88, 0.6, r'$\bf{C-terminus}$', color='black', fontsize=28, fontname='Helvetica')
plt.show()
这是我的想法,我需要做得更好


谢谢你的支持

唯一一个看起来稍有不同的尺寸是SP7。这就是您所指的吗?要删除由
aspect='auto'
引起的变形,请删除
aspect='auto'
。您可以尝试使用
plt.子地块(..,gridspec_kw={'wspace':0.05,'hspace':0.05})
来获得您最喜欢的子地块间距。@RufusVS是的,SP7更大,IT1、IT2、IT3、IT4、IT5更小。那么,你知道问题或解决方案是什么吗?谢谢lot@JohanC谢谢你的回答,我已经试过了,但是文本没有对齐,有些图像更大(SP7和IT1),所以,在打印之前,图像的大小必须相同?感谢您的支持如果没有精确的图像,很难猜出发生了什么。也许有些图像的一面有很多空白?您应该做的第一件事是,编写一个函数,使其不必到处粘贴相同的代码副本。如果唯一的目标是用标签显示28幅图像,matplotlib并不是最明显的软件。有gimp,inkscape,libreoffice。。。还有许多其他的更有意义。