numpy 如何移除曲面图上的正方形

z4iuyo4d  于 2023-05-17  发布在  其他
关注(0)|答案(1)|浏览(145)

我有一个matplotlib代码来绘制某个3d函数。

import numpy as np
import matplotlib.pyplot as plt
L = 10
a = 0.4
type = "COS"
fig = plt.figure(figsize = (12,10))
ax = plt.axes(projection='3d')
ax.grid(False)
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])

x = np.arange(0, L, 0.05)
y = np.arange(0, 20, 0.05)

X, Y = np.meshgrid(x, y)
def f(x,t,n):
    return np.cos(n*np.pi*x/L)*np.exp(-a*n*n*np.pi*np.pi*a*t/(L*L))

def s(n):
    if type == "PAR":
        if n > 0:
            return L*L*(4*np.pi*n+4*np.pi*n*((-1)**n))/(2*(np.pi**3)*(n**3))
        else:
            return L*L/12
    elif type == "COS":
        if n > 0:
            return 2*(L*np.sin(L)*((-1)**n))/(L*L-np.pi*np.pi*n*n)
        else:
            return np.sin(L)/L

def g(x,t):
    ans = s(0)
    for n in range(1,200):
        ans += s(n)*f(x,t,n)
    return ans

Z = g(X,Y)

surf = ax.plot_surface(X, Y, Z, cmap = plt.cm.inferno)
ax.set_xlabel('x', labelpad=20)
ax.set_ylabel('t', labelpad=20)
ax.set_zlabel('T', labelpad=20)
plt.show()

但是,当我把它画出来的时候,我得到了这个:

如您所见,绘制的曲面上有矩形,而我不需要它们。我怎么能删除它们?我试着删除网格和轴,但这并不影响任何东西。

6yt4nkrj

6yt4nkrj1#

可以使用antialiased=False

surf = ax.plot_surface(X, Y, Z, cmap=plt.cm.inferno, antialiased=False)

相关问题