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

如何在Python中显示3D绘图?代码运行出现空白白屏问题求助

3D绘图白屏问题排查与解决

核心原因1:Axes3D初始化方式过时

matplotlib 3.4+版本已不再推荐直接实例化Axes3D对象,旧写法在部分环境中会导致渲染失败,出现白屏。

解决办法:
将创建3D轴的代码从:

ax = Axes3D(fig)

替换为官方推荐的写法:

ax = fig.add_subplot(projection='3d')

核心原因2:matplotlib后端不支持交互式显示

如果当前matplotlib使用的是非交互式后端(如Agg),仅会生成图片文件而不会弹出显示窗口,表现为白屏或无窗口响应。

解决办法:

  1. 先查看当前使用的后端:
print(plt.get_backend())
  1. 切换到支持交互式渲染的后端,在代码开头添加:
plt.switch_backend('TkAgg')  # 或QtAgg、GTK3Agg等,根据系统环境选择适配的后端

额外问题:双变量正态分布计算错误(非白屏原因,但影响图形正确性)

你的np_bivariate_normal_pdf函数存在变量名混淆(将步长参数命名为variance),且双变量正态分布的公式错误,会导致生成的Z值不符合预期。

修正后的函数:

def np_bivariate_normal_pdf(domain, mean, step, variance):
    X = np.arange(-domain + mean, domain + mean, step)
    Y = np.arange(-domain + mean, domain + mean, step)
    X, Y = np.meshgrid(X, Y)
    # 标准双变量正态分布(独立变量)公式
    Z = (1. / (2 * np.pi * variance**2)) * np.exp(-(X**2 + Y**2) / (2 * variance**2))
    return X, Y, Z

调用时传入正确的步长和方差参数:

plt_plot_bivariate_normal_pdf(*np_bivariate_normal_pdf(4, 0, .25, 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:25:19