我正在尝试使用pyplot绘制图像和一些线条。另外,我需要有两个x轴,一个在底部,一个在顶部。假设较低的一个应该有五个刻度,范围从0到5,而较高的一个也应该有五个刻度,但范围从36到41,这些刻度应该对齐。这可以通过以下方式轻松完成:
from matplotlib import pyplot as plt
fig, ax1 = plt.subplots()
ax1.axis([0,5,10,20]) # set bottom axis limits
plt.grid()
ax2 = plt.twiny()
ax2.axis([36,41,10,20]) # set top axis limits
plt.show()
产生:
但是,一旦我使用imshow
,我似乎无法正确设置底部x轴的限制:
import numpy as np
from matplotlib import pyplot as plt
# Using a small checkerboard as image
a = np.array([[0,1],[1,0]])
fig, ax1 = plt.subplots()
ax1.axis([0,5,10,20]) # Set lower axis limits -> are ignored
ax1.imshow(a, extent=(0,5,10,20))
plt.grid()
ax2 = plt.twiny() # If these two lines are commented
ax2.axis([36,41,10,20]) # imshow behaves as expected
plt.show()
产生:
如何在保持轴对齐的刻度的同时显示图像?