<p>假设您有一个ready函数,比如<code>read_z_from_file(filename)</code>,它返回文件中包含的<code>z</code>-值,可以这样做:</p>
<pre><code>import numpy as np
x = np.arange(10,20,1, dtype = np.int)
y = np.arange(20,50,1, dtype = np.int)
z = np.zeros((x.shape[0],y.shape[0]))
for i,x0 in enum(x):
for j,y0 in enum(y):
filename = '{}_{}.txt'.format(x0,y0)
z[i,j] = read_z_from_file(filename)
</code></pre>
<p>然后您可以用<code>imshow</code>或<code>matplotlib</code>来可视化<code>z</code>。例如:</p>
^{pr2}$
<p><strong>编辑</strong>:</p>
<p>为了回答OP的问题,有多种方法可以可视化您的数据。<code>imshow</code>和<code>matshow</code>两者都有相同的功能,但显示细节不同。此外,您还可以生成等高线图或三维曲面。这在很大程度上取决于你想看什么。不管怎样,假设上面的代码能满足您的需要,我在下面展示一些使用四种不同方法来显示相同示例数据的代码。您可以在内置的<code>help()</code>函数以及<a href="https://matplotlib.org/devdocs/index.html" rel="nofollow noreferrer">matplotlib</a>和<a href="https://docs.scipy.org/doc/" rel="nofollow noreferrer">numpy</a>文档页面中找到关于这些不同方法的更多信息。在</p>
<pre><code>import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D ##for the 3d surface plot
from matplotlib import cm
#non-integer spacing of the coordinates
x = np.linspace (10, 20, 15)
y = np.linspace (20, 50, 70)
#gridding the coordinates
xm, ym = np.meshgrid(x,y)
#example data
z = np.exp(-( 0.1*(xm-12)**2 + 0.05*(ym-40)**2 ) )
#opening a figure
fig = plt.figure(figsize=(6,6))
#matshow:
ax1 = fig.add_subplot(221)
res = ax1.matshow(
z,
origin = 'lower',
aspect = 'auto',
extent=[x[0],x[-1],y[0],y[-1]],
)
fig.colorbar(res)
ax1.set_title('matshow', y=1.1)
#imshow
ax2 = fig.add_subplot(222)
res = ax2.imshow(
z,
origin = 'lower',
aspect = 'auto',
extent=[x[0],x[-1],y[0],y[-1]],
)
fig.colorbar(res)
ax2.set_title('imshow')
#contourf
ax3 = fig.add_subplot(223)
res = ax3.contourf(xm,ym,z)
fig.colorbar(res)
ax3.set_title('contourf')
#3d surface
ax4 = fig.add_subplot(224, projection='3d')
res = ax4.plot_surface(
xm,ym,z,
cmap = cm.viridis,
antialiased=False
)
fig.colorbar(res, pad = 0.1)
ax4.set_title('3d surface')
fig.tight_layout()
plt.show()
</code></pre>
<p>最后的情节如下:</p>
<p><a href="https://i.stack.imgur.com/0q1Fk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0q1Fk.png" alt="the result of the above given code"/></a></p>