python三维圆曲面_python – matplotlib中的曲面和三维轮廓

本文介绍了如何使用matplotlib库在Python中创建三维圆曲面,并同时展示色彩图、线框和3D轮廓。通过示例代码展示了两种不同的方法,一种是直接绘制,另一种是通过调整透明度来显示轮廓。然而,直接绘制的轮廓不明显,而透明度方法虽然能显示轮廓但效果较乱。文章探讨了在matplotlib中实现清晰3D轮廓的挑战。
摘要由CSDN通过智能技术生成

我想使用matplotlib绘制带有色彩图,线框和轮廓的曲面.像这样的东西:

uy6g1.png

请注意,我不是在询问与xy平行的平面中的轮廓,而是在图像中是3D和白色的轮廓.

如果我采用天真的方式并绘制所有这些东西,我看不到轮廓(见下面的代码和图片).

import numpy as np

from mpl_toolkits.mplot3d import axes3d

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111, projection="3d")

X, Y = np.mgrid[-1:1:30j, -1:1:30j]

Z = np.sin(np.pi*X)*np.sin(np.pi*Y)

ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1)

ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)

ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")

plt.show()

b65JS.png

如果为表面刻面添加透明度,那么我可以看到轮廓,但它看起来非常混乱(请参阅下面的代码和图像)

import numpy as np

from mpl_toolkits.mplot3d import axes3d

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111, projection="3d")

X, Y = np.mgrid[-1:1:30j, -1:1:30j]

Z = np.sin(np.pi*X)*np.sin(np.pi*Y)

ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1, alpha=0.5)

ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)

ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")

plt.show()

cF2Vf.png

问题:有没有办法在matplotlib中获得此结果?但是,阴影不是必需的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值