我正在努力寻找一种方法来保持图像的投影与图像完全对齐(如下图所示),但同时减少它们的维度,以便图像占据大部分的图形空间。
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib.image as mpimg
import numpy as np
from skimage import data
img = data.coins()
h,w = img.shape
ratio = h/w
fig = plt.figure(figsize=(8, 8))
gs = gridspec.GridSpec(2, 2, width_ratios=[1*ratio, 1], height_ratios=[1/ratio, 1])
ax_center = plt.subplot(gs[1, 1])
ax_center.imshow(img)
ax_left = plt.subplot(gs[1, 0])
ax_left.set_title('Left Plot')
ax_left.plot(-img.mean(axis=1),range(img.shape[0]))
ax_top = plt.subplot(gs[0, 1])
ax_top.plot(img.mean(axis=0))
ax_top.set_title('Top Plot')
plt.tight_layout()
plt.show()
字符串
的数据
基本上,我希望顶部的情节有一个smalle高度和左上角有一个较小的宽度保持他们完美的图像对齐。
1条答案
按热度按时间zte4gxcn1#
您可以执行以下操作(通过设置
aspect="auto"
,图像可能会失真,因此在下面的示例中,我已经适当调整了图形大小以解决此问题):字符串
这产生:
的数据