fig, ax1 = plt.subplots()
ax2 = ax1.twinx()

ax1.plot(x,y1,'go-')
ax1.plot(x,y2,'ro-')
ax1.plot(x,y3,'g*--')
ax1.plot(x,y4,'r*--')
ax2.plot(x,y5,'bo-')
ax2.plot(x,y6,'b*--')

ax1.set_xlabel('cluster size')
ax1.set_ylabel('number of nodes', color='g')
ax2.set_ylabel('error rate', color='b')


我想要绘制6条以上的曲线。 Y轴有两个。
我不知道如何为这6条曲线制作图例。
我想要得到的就像

legend([y1,y2,y3,y4],['A','B','C','D'])
legend([y5,Y6],['e','f'])

最佳答案

您可以为每个plot()语句使用标签。例如:

ax1.plot(x,y1,'go-', label='A')
ax1.plot(x,y2,'ro-', label='B')
ax1.plot(x,y3,'g*--', label='C')
ax1.plot(x,y4,'r*--', label='D')


然后,打电话

ax1.legend()


会自动创建所需的图例,因为不带参数调用legend()会自动获取处理程序及其各自的标签。

如果需要单独的图例,也可以通过loc参数为它们指定不同的位置。检查guide以获得更多详细信息。

关于python - Python:Twinx之后如何制作图例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28075365/

10-12 18:03