You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib 3D曲面图上添加自定义颜色网格线以方便数值追踪

matplotlib 3D曲面添加自定义网格线解决方案

完全可以实现你要的效果,只需要在plot_surface方法中显式指定网格线相关参数即可。

核心修改点

在调用plot_surface时新增两个参数:

  • edgecolor:自定义曲面网格线的颜色,传入'k'代表黑色,也可填入任意合法的matplotlib颜色值(如'#000000'、'blue'等)
  • linewidth:自定义网格线的粗细,数值越大线条越清晰

修改后完整代码

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

def fun(x, y):
    return 1/(1+np.exp(-x-y))

n=400
x = np.linspace(-3.0, 3.0, n)
y = np.linspace(-3.0, 3.0, n)
X, Y = np.meshgrid(x, y)
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)

fig, ax = plt.subplots(nrows=2, ncols=2, subplot_kw={'projection': '3d'})
ax[0,0].plot_wireframe(X, Y, Z, rstride=40, cstride=40)
# 新增edgecolor和linewidth参数设置网格线
ax[0,1].plot_surface(X, Y, Z, rstride=40, cstride=40, color='m', edgecolor='k', linewidth=0.5)
ax[1,0].plot_surface(X, Y, Z, rstride=12, cstride=12, cmap='coolwarm', edgecolor='k', linewidth=0.3)
ax[1,1].plot_surface(X, Y, Z, rstride=20, cstride=20, cmap=cm.hot, edgecolor='k', linewidth=0.4)

for axes in ax.flatten():
    axes.set_xticks([-3,-2, -1, 0, 1, 2,3])
    axes.set_yticks([-3,-2, -1, 0, 1, 2,3])
    axes.set_zticks([0, 0.2,0.4,0.6,0.8, 1])
fig.tight_layout()

plt.show()

额外调整说明

如果需要更密集的网格方便定位,调小rstride、cstride的数值即可;如果需要网格线更醒目,调大linewidth的数值即可。

内容的提问来源于stack exchange,提问作者BDG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:24:03