学习数学建模的过程中,在插值与拟合章节中,碰到这个程序文件:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
x = np.array([129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5])
y = np.array([7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5])
z = -np.array([4,8,6,8,6,8,8,9,9,8,8,9,4,9])
xy = np.vstack([x,y]).T
xn = np.linspace(x.min(),x.max(),100)
yn = np.linspace(y.min(),y.max(),100)
xng,yng = np.meshgrid(xn,yn)
zn = griddata(xy,z,(xng,yng),method='nearest')
plt.rc('font',size=16) plt.rc('text',usetex=True)
ax = plt.axes(projection='3d')
ax.plot_surface(xng,yng,zn,cmap='viridis')
ax.set_xlabel('$x$');ax.set_ylabel('$y$');ax.set_zlabel('$z$')
plt.show()
在运行后会报出这样的错误:
RuntimeError: Failed to process string with tex because latex could not be found
起初,通过各种渠道查找,我以为是我没有安装latex,于是我用了win+r cmd命令 pip install latex,结果问题没有解决,在conda那里安装也不起作用
后来才知道是这块代码的问题:
plt.rc('text',usetex=True)
这块代码的意思是使用latex,正常情况下运行python程序绘图是可以不用用到它的(只是书里出现到而已),只要把这块代码注释掉就可以成功运行了!!!
其原因在于latex与Python pip3下载后的latex是不一样的,与Python无法兼容。可以直接在Python文件中使用plt.show()去显示图像,或者去下载latex专属版本(与Python pip下载无关),后者相比前者较为麻烦,而且如果没有参加数学建模美赛的需要的话,通常是用不到latex的(如果还有其他广泛的用途的话请恕我无知)
下面是整个程序文件运行后的图: