我使用以下代码绘制两个变量的函数
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from pylab import meshgrid
import matplotlib.pyplot as plt
x = np.arange(0,1.0,0.01)
y = np.arange(0,1.0,0.01)
X,Y = meshgrid(x, y)
Z = np.sin(2*np.abs(X-0.3)+2*np.sin(5*Y))
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()
从表面突然出现的那些线是什么? 它们不在我的数据中。将分辨率更改为0.001会修复它们,但这会使绘图变得非常慢。
答案 0 :(得分:1)
默认情况下,ax.plot_surface会忽略部分数据。问题是它不会忽略这些数据来绘制黑线。因此,黑线基于与连接蓝色补丁不同的数据。
可以通过传递可选参数来启用它:
ax.plot_surface(X, Y, Z,cstride=1,rstride=1)
我不清楚默认设置背后的想法是什么。我很乐意被照亮。