我试图在matplotlib imshow()绘图中有两个相互依赖的x轴。底部x轴是半径的平方,顶部是半径的平方。到目前为止,我已经尝试过:
ax8 = ax7.twiny()
ax8._sharex = ax7
fmtr = FuncFormatter(lambda x,pos: np.sqrt(x) )
ax8.xaxis.set_major_formatter(fmtr)
ax8.set_xlabel("Radius [m]")
其中ax7是y轴和底部x轴(或半径平方)。不是把sqrt(x_底部)作为顶部的记号,我只得到一个从0到1的范围。我该怎么解决这个问题?在
事先非常感谢。在
你误解了
twiny
的作用。它使一个完全独立的x轴和一个共享的y轴。在您要做的是用一个链接的轴使用不同的格式化程序(即共享轴限制,但不共享其他内容)。在
执行此操作的简单方法是手动设置孪生轴的轴限制:
但是,一旦缩放或与绘图交互,就会注意到轴未链接。在
您可以在同一位置添加一个轴,同时使用共享的x轴和y轴,但是记号格式化程序也是共享的。在
因此,最简单的方法就是使用寄生轴。在
举个简单的例子:
^{pr2}$这张图和上一张图一开始看起来是一样的。当您与绘图交互(例如缩放/平移)时,差异将变得明显。在
相关问题 更多 >
编程相关推荐