会不会是plt.show()有问题,我可以换一种方法吗
时间: 2024-02-22 10:56:10 浏览: 83
是的,`plt.show()` 可能不适用于所有的 Python 环境。你可以尝试使用其他的方法来显示图像,例如使用 `pyplot.imshow()` 函数来显示图像。修改代码如下:
``` python
import matlab.engine
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
eng = matlab.engine.start_matlab()
x = np.arange(0, 10, 0.1)
y = np.arange(0, 10, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.array(eng.meshgrid(x, y, nargout=1))
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(X, Y, Z)
img = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
img = img.reshape(fig.canvas.get_width_height()[::-1] + (3,))
plt.imshow(img)
plt.show()
```
这段代码将使用 `fig.canvas.tostring_rgb()` 函数将图像转换为二进制数据,再使用 `plt.imshow()` 函数将其显示出来。这种方法可以在大多数 Python 环境中正常工作。
阅读全文