我想在图例下的“红色实心圆圈”符号旁边添加一个“红色实心正方形”符号。我如何实现这一目标?我更喜欢坚持使用 pyplot 而不是 pylab。
以下是我一直在使用的代码:
fig = plt.figure()
ax1 = fig.add_axes([0.1,0.29,0.86,0.68])
plt.ylabel('Radial Velocity (km s$^{-1}$)')
plt.plot(time_model, rv_model_primary, 'k-', label = 'Primary')
plt.plot(time_model_sec, rv_model_secondary, 'k--', label = 'Secondary')
plt.plot(time_obs, rv_obs_primary, 'bo', label='XYZ')
plt.plot(time_obs_apg, rv_obs_primary_apg, 'ro', label='This Work')
plt.plot(time_obs_apg_sec, rv_obs_secondary_apg, 'rs')
plt.plot((0.0, 1.0),(0.0,0.0), 'k-.')
plt.legend(loc='upper left', numpoints=1)
这是我尝试过的:
p1=plt.plot(time_model, rv_model_primary, 'k-')
p2=plt.plot(time_model_sec, rv_model_secondary, 'k--')
p3=plt.plot(time_obs, rv_obs_primary, 'bo')
p4=plt.plot(time_obs_apg, rv_obs_primary_apg, 'ro')
p5=plt.plot(time_obs_apg_sec, rv_obs_secondary_apg, 'rs')
plt.legend([p1,p2,p3,(p4,p5)],["Primary", "Secondary", "XYZ", "This Work"])
使用 tcaswell 的建议对代码进行更改后,我得到以下信息。看起来不错,但我希望只有一个符号代表蓝色,同时保留两个符号代表红色。目前有两个。
通过将 numpoints=1 添加到一般 legend() 的最终解决方案有效。这就是我想要的。谢谢特卡斯韦尔!