Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于matplotlib的势能面最小路径_Python_Matplotlib_Path - Fatal编程技术网

Python 基于matplotlib的势能面最小路径

Python 基于matplotlib的势能面最小路径,python,matplotlib,path,Python,Matplotlib,Path,我使用Matplotlib绘制了一个三维势能面。 但是,我还想用箭头显示一个反应路径,在势能面的极小值之间有一个势垒最低的 有人能帮我吗:这是我的3D曲面代码: #!/usr/bin/python INPUT='input.txt' from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np from matplotlib.mlab import griddata from

我使用Matplotlib绘制了一个三维势能面。 但是,我还想用箭头显示一个反应路径,在势能面的极小值之间有一个势垒最低的

有人能帮我吗:这是我的3D曲面代码:

#!/usr/bin/python
INPUT='input.txt'

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.mlab import griddata
from matplotlib import cm
from pylab import *
from matplotlib.ticker import LinearLocator, FormatStrFormatter


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

data = np.genfromtxt(INPUT)
x = data[:,0]
y = data[:,1]
z = data[:,2]

xi = np.linspace(min(x), max(x))
yi = np.linspace(min(y), max(y))

X, Y = np.meshgrid(xi, yi)
Z = griddata(x, y, z, xi, yi, interp='linear')

ax.contourf(X, Y, Z, 30, zdir='z', offset=-7, linewidth=0.2, cmap=cm.jet, antialiased=False, shade=True)
C = ax.contour(X, Y, Z, 30, colors='k', linewidths=0.2)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, linewidth=0, antialiased=False, shade=False)
fig.colorbar(surf)
ax.clabel(C, inline=1, fontsize=10)

ax.set_xlabel(r"$d$$_{3}$ ($\AA$)")
ax.set_ylabel(r"$d$$_{4}$ ($\AA$)")
ax.set_zlabel(r"$\Delta$$E$$_{e}$ (kcal/mol)")

plt.show()
我想要一个如下所示的图表:

资料来源: