如何使用 matplotlib 绘制和对齐多分辨率图像?
How to plot and align multiresolution images using matplotlib?
我正在寻找一种方法来绘制具有相同 xlims 和不同分辨率的多个图像,这些图像沿 x 轴对齐并堆叠在 y 轴上。
我能够使用子图生成我想要的内容(如下所示),但我很想知道是否有更好更简单的方法在单个轴上执行此操作。
下面是我用来生成图像的代码:
import numpy as np
import matplotlib.pyplot as plt
N =10
fig,ax = plt.subplots(N,1, figsize=(16,6), sharex=True)
fig.subplots_adjust(hspace=0)
for n in range(N):
x = np.sin(np.linspace(0,2*np.pi,(n+1)*10))
ax[n].imshow([x, x], extent=(0,2*np.pi,0,1), aspect='auto')
ax[n].axis('off')
在同一轴上绘制所有图像同样可行
import numpy as np
import matplotlib.pyplot as plt
N =10
fig, ax = plt.subplots(figsize=(16,6))
ax.axis('off')
for n in range(N):
x = np.sin(np.linspace(0,2*np.pi,(n+1)*10))
ax.imshow([x, x], extent=(0, 2*np.pi, n, n+1), aspect='auto')
ax.autoscale()
ax.invert_yaxis()
plt.show()
我正在寻找一种方法来绘制具有相同 xlims 和不同分辨率的多个图像,这些图像沿 x 轴对齐并堆叠在 y 轴上。
我能够使用子图生成我想要的内容(如下所示),但我很想知道是否有更好更简单的方法在单个轴上执行此操作。
下面是我用来生成图像的代码:
import numpy as np
import matplotlib.pyplot as plt
N =10
fig,ax = plt.subplots(N,1, figsize=(16,6), sharex=True)
fig.subplots_adjust(hspace=0)
for n in range(N):
x = np.sin(np.linspace(0,2*np.pi,(n+1)*10))
ax[n].imshow([x, x], extent=(0,2*np.pi,0,1), aspect='auto')
ax[n].axis('off')
在同一轴上绘制所有图像同样可行
import numpy as np
import matplotlib.pyplot as plt
N =10
fig, ax = plt.subplots(figsize=(16,6))
ax.axis('off')
for n in range(N):
x = np.sin(np.linspace(0,2*np.pi,(n+1)*10))
ax.imshow([x, x], extent=(0, 2*np.pi, n, n+1), aspect='auto')
ax.autoscale()
ax.invert_yaxis()
plt.show()