3dplot中的Python图例

时间:2016-01-12 16:25:11

标签: python matplotlib plot

我正在绘制python 2.7中的3d图

当我尝试用2D plot()函数绘制带有颜色和标记的3d图时。我遇到了一个错误。

所以我尝试分别绘制线条,并使用scatter()函数分别用标记测量点。

当我创建图例条目时,我的图例看起来像这样

enter image description here

但我不想让重复的图例条目改为

  • 我想让我的图例条目用颜色分组,或
  • 是否可以同时将标记和行作为单个条目,以便我的图例
  • 中只有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

但我希望我的传奇只有两个条目

1 个答案:

答案 0 :(得分:0)

您是否使用标准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()

enter image description here