我正在Python 2.7中绘制一个三维图。当我尝试像2D plot()函数一样使用颜色和标记来绘制3D图时,遇到了错误。因此,我尝试分别使用scatter()函数单独绘制线条和带有标记的测量点。当我创建图例时,我的图例看起来像这样:
上述代码给出了下面显示的图形Plot 但我希望我的图例只有两个条目。
但我不想有重复的图例条目
- 我希望我的图例条目按颜色分组,或者
- 是否可能将标记和线路作为单个条目,以便我的图例中只有5个条目
我找到了一个类似的问题(如何在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 但我希望我的图例只有两个条目。
plot
和scatter
绘图函数?如果scatter
中的点与plot
中的点相同,则在plot
调用中设置一个marker
,如果它们不是相同的点,则它们可能应该被标记为不同的点,Matplotlib 正在做正确的事情。如果您可能有太多的点需要为它们设置标记,则可以使用markevery
绘图选项。否则,您需要向我们展示更具代表性的示例。 - Ferdinand van Wyk