gpt4 book ai didi

python - 3D 绘图区域满足 matplotlib 中的不等式

转载 作者:行者123 更新时间:2023-12-05 06:17:13 25 4
gpt4 key购买 nike

希望在 3D 空间中对满足不等式集的区域进行着色:

x^2 < -2*x*y*z

y^2 < -2*x*y*z

z 在 [0,1] 之间运行。

这可以在 Mathematica 中用代码完成

RegionPlot3D[
x^2 < -2*x*y*z && y^2 <- 2*x*y*z, {x, -1, 1}, {y, -1, 1}, {z, 0, 1},
PlotPoints -> 100]

我想知道如何在 matplotlib 中执行此操作。

3D plot

最佳答案

我发现这个问题是在寻找同一个问题的答案!

由于还没有人回答,我可以建议您使用 Plotly 进行 3D 或仅使用 MatPlotLib 进行 2D 并制作我所说的“积分技巧”:只需遍历轴并在坐标处放置一个散点图点满足不等式。

我建议 Plotly 用于 3D,因为如果您在 MatPlotLib 中绘制许多点,那么当您旋转绘图时它的工作速度会非常慢。

对于您的情节,我们可以编写以下内容:

import plotly.express as px
import numpy

data_x = []
data_y = []
data_z = []
for z in numpy.arange(0, 1, 0.01):
for x in numpy.arange(-1, 1, 0.01):
for y in numpy.arange(-1, 1, 0.01):
if x**2 < -2*x*y*z and y**2 <- 2*x*y*z:
data_x.append(x)
data_y.append(y)
data_z.append(z)


fig = px.scatter_3d(x=data_x, y=data_y, z=data_z, opacity=0.3)
fig.show()

虽然它只是一个近似的实体,但它仍然有帮助。

不过,从技术上讲,这并不是一件简单的事情,因为您需要根据区域来描述网格。事实证明,您至少需要找到实体的角点。因此,Mathematica 对此有一个很好的功能,但要在 Python 中实现同样的功能,我们似乎需要亲自动手。

关于python - 3D 绘图区域满足 matplotlib 中的不等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61732123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com