我想知道是否有人可以填写如何创建网格网格以生成等高线图的代码? 导入的txt文件是一个数字矩阵,其值为0-255。我可以使用以下代码来打印图像,但不能将网格设置为获得轮廓线图。
import numpy as np
import matplotlib.pyplot as plt
matrix = np.loadtxt('matrix.txt')
print (matrix)
#how do I make the mesh grid here?
plt.contour(matrix)
plt.show()
编辑:道歉我看到这是相似的,但利用前一个线程的meshgrid ....他们使用函数'arange'?
n = 12150715
x = arange (n)
y = arange (n)
X, Y = np.meshgrid(x, y)
plt.contour(X, Y, matrix)
plt.contour(matrix)
plt.show()
我仍然会遇到错误,但如果我超出plt以上的部分,我就无法得到错误。
“文件”“,第1行,在runfile中('/ myfiles / testing.py',wdir ='/ Volumes /.../ Python')
文件“/Users/ME/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”,第710行,在runfile execfile(filename,namespace)中
在execfile exec中输入文件“/Users/ME/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”,第101行(compile(f.read(),filename,'exec') ),命名空间)
文件“testing.py”,第25行,在X中,Y = np.meshgrid(x,y)
文件“/Users/ME/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py”,第4684行,在meshgrid输出= [x.copy()for x in output]
文件“/Users/ME/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py”,第4684行,输出= [x.copy()for x in output]
的MemoryError”
如果n=12150715
(你从哪里发明了这个数字?)那么一个包含n ** 2个元素的数组将不再适合你的记忆。除此之外,无论如何想象这样一个巨大的阵列是没有意义的。
当然x
和y
需要与矩阵的列数和行数一致。
import numpy as np
import matplotlib.pyplot as plt
matrix = np.loadtxt('matrix.txt')
x = arange (matrix.shape[1])
y = arange (matrix.shape[0])
X, Y = np.meshgrid(x, y)
plt.contour(X, Y, matrix)
plt.show()