import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-15, 15, 0.05)
y = np.arange(-15, 15, 0.05)
# 网格化坐标
x,y = np.meshgrid(x,y)
z = -x**2 + y**2
fig = plt.figure()
# 生成一个三维绘图空间
ax = fig.add_subplot(1,1,1, projection = "3d")
# 绘制曲面
ax.plot_surface(x, y, z, color = "cornflowerblue", alpha = 0.5)
# 绘制坐标点和代表负梯度向量的直线
ax.scatter([3], [-5], [16], color = "green", marker = "o")
ax.quiver(3,-5,16, 6,10,0, colors = "yellow", length = 0.5)
# 添加三维文本注释
ax.text(-15, -15, 200, r"$z = -\mathrm{x^{2}} + \mathrm{y^{2}}$")
ax.text(0, 0, 150, r"$Grad(x,y,z) = (\frac{\partial{f(x,y)}}{\partial{x}}, \
\frac{\partical{f(x,y)}}{\partial{y}}, 0)$")
ax.text(3, -10, 35, "(3,-5,16)")
ax.text(6,0,16, "(6,10,0)")
plt.show()

\frac{表达式1}{表达式2} = 分式
\partial{x} = ∂x
\mathrm{表达式^{n}} = 上标