如何解决Pyplot:如何添加镜像的第二个 y 轴而不是负值?
在 pyplot 中,如何在通常为负值的位置添加第二个 y 轴? y 值应逐渐远离共享的 x 轴。
在 x 轴上方我想绘制时间消耗和 x 轴下方的空间消耗。 x 轴基本上是当前迭代。
解决方法
这可以使用 sharex=True 和 invert_yaxis() 来实现:
from matplotlib import pyplot as plt
fig,(ax1,ax2) = plt.subplots(2,1,sharex=True,figsize=(5,10))
xdata = [2,5]
data1 = [1,3,5]
data2 = [1,4,7]
l1 = ax1.plot(xdata,data1,"ro")
l2 = ax2.plot(xdata,data2,"bx")
l3 = ax2.plot(xdata,"g")
#make the appearance more coherent
#remove space between subplots
plt.subplots_adjust(hspace=0)
#invert the y-axis
ax2.invert_yaxis()
#set both plots to the same y-limit
lim = max(max(ax1.get_ylim()),max(ax2.get_ylim()))
ax1.set_ylim(0,lim)
ax2.set_ylim(lim,0)
#move the x-axis label to the center
ax2.xaxis.tick_top()
#remove the double zero label
yticks2 = ax2.yaxis.get_major_ticks()
yticks2[0].set_visible(False)
#create a common legend
ax1.legend(l1+l2+l3,["data1","data2","again data1"])
plt.show()
示例输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。