如何使用 imshow 在轴(视口(viewport))的所有宽度上显示图像,但保持比例“相等”?
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(nrows=2, figsize=(8,8))
img = ax[0].imshow(np.random.random((10,10)), aspect='equal')
line = ax[1].plot([12,34],[45,78])
我希望图像宽度在线图上对齐,保持相等的比例,即使这意味着周围有空白。事实上,我的应用程序在图像上编码了缩放功能,因此我会为其显示提供所有可能的宽度。
所以简而言之,我想要与 aspect='auto' 相同的宽度,但具有方形像素。 是否可以 ?谢谢。
最佳答案
发现读数为 Axes class - set explicitly size (width/height) of axes in given units 和使用
set_adjustable('datalim')
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(nrows=2, figsize=(8,8))
img = ax[0].imshow(np.random.random((10,10)), aspect='equal')
ax[0].set_adjustable('datalim')
line = ax[1].plot([12,34],[45,78])
关于matplotlib - 以最大宽度保持等比例显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71649949/