Matplotlib 3D-Surface的“颠簸功能”不起作用

时间:2014-06-04 18:54:07

标签: python matplotlib

我正在尝试将3D曲线绘制到此函数中:

func

看起来应该是这样的 bumpy

我在Python 3.x中做了以下(我想在同意中分析这个,所以我也创建了函数的符号版本):

from sympy import init_printing
init_printing()
import sympy as sp

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D

x1, x2=sp.symbols('x1 x2')
F=np.abs(((sp.cos(x1))**4+(sp.cos(x2))**4-2*((sp.cos(x1))**2)*  ((sp.cos(x2))**2))/(sp.sqrt(x1**2+2*x2**2)))

F_lam=sp.lambdify((x1,x2),F,modules='numpy')
x1_t=np.linspace(0.5,10,num=100)
x2_t=np.linspace(0.5,10,num=100)

X1,X2=np.meshgrid(x1_t,x2_t)
Z=F_lam(x1_t,x2_t)


fig = plt.figure(figsize=(14,6))

ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X1, X2, Z, linewidth=0)

但我明白了:

bad_bumpy

1 个答案:

答案 0 :(得分:2)

您为错误的数组调用了函数:

Z=F_lam(X1, X2)

但是,如果matplotlib会出错,表示形状不对,那会更好。