Python: twinx后如何制作图例
Python: how to make legend after twinx
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 了解更多详情。
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 了解更多详情。