3dplot中的# Python图例
问题:3dplot中的# Python图例 我正在 python 2.7 中绘制 3d 图 当我尝试使用 2D plot() 函数中的颜色和标记绘制 3d 图时。我遇到了一个错误。 因此,我尝试使用 scatter() 函数分别绘制线并使用标记分别测量点。 当我创建图例条目时,我的图例看起来像这样 但我不想有重复的图例条目 我希望我的图例条目按颜色分组,或者 是否可以将标记和行作为一个条目,以便我
·
问题:3dplot中的# Python图例
我正在 python 2.7 中绘制 3d 图
当我尝试使用 2D plot() 函数中的颜色和标记绘制 3d 图时。我遇到了一个错误。
因此,我尝试使用 scatter() 函数分别绘制线并使用标记分别测量点。
当我创建图例条目时,我的图例看起来像这样
但我不想有重复的图例条目
-
我希望我的图例条目按颜色分组,或者
-
是否可以将标记和行作为一个条目,以便我的图例中只有 5 个条目
我发现了一个与此类似的问题(How to make custom legend in matplotlib),但它并没有解决我的问题
我正在附加类似于我的问题的代码
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve 1')
ax.scatter(x, y, z, label='parametric curve 1',marker = 'o')
x = r * np.sin(theta + 1)
y = r * np.cos(theta + 1)
ax.plot(x, y, z, label='parametric curve 2')
ax.scatter(x, y, z, label='parametric curve 2',marker = 'o')
ax.legend()
plt.show()
上面的代码给了我一个图如下所示Plot
但我希望我的传奇只有两个条目
解答
您是否使用标准的 Matplotlib 库来生成这些 3D 图?如果是这样,从文档中的示例(http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#line-plots)开始,它似乎工作正常:
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve 1', marker='o')
x = r * np.sin(theta + 1)
y = r * np.cos(theta + 1)
ax.plot(x, y, z, label='parametric curve 2', marker='o')
ax.legend()
plt.show()
更多推荐
已为社区贡献126473条内容
所有评论(0)