我有下面的Python代码,它显示了下面的3D图。
我的代码是:
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
# Generate data example
X,Y = np.meshgrid(np.arange(-99,-90), np.arange(-200,250,50))
Z = np.zeros_like(X)
Z[:,0] = 100.
Z[4][7] = 10
# Normalize to [0,1]
Z = (Z-Z.min())/(Z.max()-Z.min())
colors = cm.viridis(Z)
rcount, ccount, _ = colors.shape
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z, rcount=rcount, ccount=ccount,
facecolors=colors, shade=False)
surf.set_facecolor((0,0,0,0))
plt.show()
我想用不同的颜色为XY平面上的不规则部分着色。我希望能够高亮显示XY平面上的凹凸。我该怎么做?
1条答案
按热度按时间pokxtpni1#
问题是网格不是很密集。凸起由单个像素组成。因此,网格中有4个单元格,其中3个单元格的左下角为0,因此不会根据其值接收不同的颜色。只有一个像素,这实际上是 * 凹凸得到彩色。
现在您可以展开图的彩色部分,例如:使用
scipy.ndimage.grey_dilation
,使得相邻的所有像素也变为黄色。