小编Ili*_*ssA的帖子

有没有办法在 matplotlib 中标记多个 3d 表面?

我试图用线性约束解决非线性数学优化问题。为此,我试图在 3d 中可视化约束以了解正在发生的事情以及为什么我为约束中的某些参数而不是其他参数获得了可行的解决方案。

为了实现这一点,我想使用python 中的matplotlib来生成 3d 表面(平面,因为我的所有约束都是线性的)。

但是,如果没有图内标记,则很难确定哪个曲面属于哪个约束。这让我想寻找一种方法来在情节内添加带有颜色的图例。

我认识到已经有一种方法可以在 2D 中执行此操作,在方法中ax.plot()或 中ax.scatter(),但是尝试执行相同操作并不起作用ax.plot_surface(X, Y, Z, label = 'mylabel')

完整脚本如下:


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


fig = plt.figure()
ax = plt.axes(projection='3d')

plt.rcParams['legend.fontsize'] = 10


# First constraint
g2 = np.linspace(-5,5,2)
g3 = np.linspace(-5,5,2)
G2,G3 = np.meshgrid(g2,g3)
G4_1 = -1.18301270189222 - 0.5*G2 + 0.5*G3
ax = fig.gca(projection='3d')
c1 = ax.plot_surface(G2, G3, G4_1, label = "c1") …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

5
推荐指数
2
解决办法
2817
查看次数

标签 统计

matplotlib ×1

python ×1