Python 无法读取最后一行和最后一列

Python 无法读取最后一行和最后一列,python,numpy,matplotlib,Python,Numpy,Matplotlib,在绘制等高线图时,我始终无法绘制第一行和第一列或最后一行和最后一列。dat文件有一个44 X 54的浮点值矩阵,我正试图绘制它的等高线图 每次我尝试使用大小为56的x1列表,以便用.dat文件中的所有值填充绘图时,它都会说x1的大小应该等于z中的列数 将numpy作为np导入 将matplotlib.pyplot作为plt导入 def等高线图文件名: 从dat文件读取孔隙度数据 data=np.loadtxtfilename 数据=np.随机。随机44,54 制作两个空列表以说明每个网格块的大小

在绘制等高线图时,我始终无法绘制第一行和第一列或最后一行和最后一列。dat文件有一个44 X 54的浮点值矩阵,我正试图绘制它的等高线图

每次我尝试使用大小为56的x1列表,以便用.dat文件中的所有值填充绘图时,它都会说x1的大小应该等于z中的列数

将numpy作为np导入 将matplotlib.pyplot作为plt导入 def等高线图文件名: 从dat文件读取孔隙度数据 data=np.loadtxtfilename 数据=np.随机。随机44,54 制作两个空列表以说明每个网格块的大小 x1=[] 对于范围为1,55的i: x1.附录I*130.75 x2=[] 对于范围为1,45的j: x2.附录J*130.75 使用pyplot.contourf使用孔隙度值绘制等高线,使用pyplot.colorbar显示相关图表 plt.FX1,x2,数据[:-1] 彩色条 标题多孔性 plt.savefig'porsity.png',bbox_inches='tight' 等高线图
我希望在等高线图中绘制所有44行和54列,但这并没有发生。

我认为错误在范围1,55和范围1,45上

从文档中:

我可以假设您需要第一个用例

>>> x1=[]
>>> for i in range(55):
...     x1.append(i*130.75)
... 

>>> x1

[0.0, 130.75, 261.5, 392.25, 523.0, 653.75, 784.5, 915.25, 1046.0, 1176.75, 1307.5, 1438.25, 1569.0, 1699.75, 1830.5, 1961.25, 2092.0, 2222.75, 2353.5, 2484.25, 2615.0, 2745.75, 2876.5, 3007.25, 3138.0, 3268.75, 3399.5, 3530.25, 3661.0, 3791.75, 3922.5, 4053.25, 4184.0, 4314.75, 4445.5, 4576.25, 4707.0, 4837.75, 4968.5, 5099.25, 5230.0, 5360.75, 5491.5, 5622.25, 5753.0, 5883.75, 6014.5, 6145.25, 6276.0, 6406.75, 6537.5, 6668.25, 6799.0, 6929.75, 7060.5]

与x2相同。

那么,为什么要用数据[:-1]删除最后一个数据点?另外,请提供一个完整的示例,其中包含您的数据样本和错误。欢迎访问So。请提供一个示例,包括一些示例数据。我们应该能够轻松地复制和粘贴您的问题,并重现您的问题。当询问产生异常的代码时,始终在问题中包含完整的回溯。复制回溯并将其粘贴到问题中,然后将其格式化为代码选择它并键入ctrl-k。@MohamedBelahcen-扩展切片中的最后一个值确定步骤,在这种情况下,步骤-1会反转其不排除最后一个元素的顺序。什么是数据的形状-printdata.shape?嗨,阿德里安!我试过了,但是当我这么做的时候,x1的大小变成了56,但是z是一个44 X 54的矩阵,因此我遗漏了一行和一列,你可以用它来生成行和列网格。使用数据的形状可以减轻对这些数组的长度进行硬编码的负担。如下所示:cols=np.linspace130.75,130.75*data.shape[1],data.shape[1]以及类似的行。对于这个问题,x1=cols。更简单的可能是cols=np.linspace1,data.shape[1],data.shape[1]*130.75或np.arange1,data.shape[1]+1*130.75==cols
>>> x1=[]
>>> for i in range(55):
...     x1.append(i*130.75)
... 

>>> x1

[0.0, 130.75, 261.5, 392.25, 523.0, 653.75, 784.5, 915.25, 1046.0, 1176.75, 1307.5, 1438.25, 1569.0, 1699.75, 1830.5, 1961.25, 2092.0, 2222.75, 2353.5, 2484.25, 2615.0, 2745.75, 2876.5, 3007.25, 3138.0, 3268.75, 3399.5, 3530.25, 3661.0, 3791.75, 3922.5, 4053.25, 4184.0, 4314.75, 4445.5, 4576.25, 4707.0, 4837.75, 4968.5, 5099.25, 5230.0, 5360.75, 5491.5, 5622.25, 5753.0, 5883.75, 6014.5, 6145.25, 6276.0, 6406.75, 6537.5, 6668.25, 6799.0, 6929.75, 7060.5]