gpt4 book ai didi

python - 缩放后 matshow/imshow 图周围的额外空间

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:13 25 4
gpt4 key购买 nike

我正在尝试以宽高比 1 绘制 matshow,但是当我依赖建议的方法 here我在情节周围有一个无法摆脱的额外空间。解决办法是什么?

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import ticker
def forceAspect(ax,aspect=1):
im = ax.get_images()
extent = im[0].get_extent()
ax.set_aspect(abs((extent[1]-extent[0])/(extent[3]-extent[2]))/aspect)
a=np.random.randn(8,4)
plt.matshow(a)
plt.colorbar(shrink=.5)
ax=plt.gca()
forceAspect(ax,aspect=1)
plt.xticks(np.arange(0, 4, 1), np.arange(1, 5, 1))
plt.yticks(np.arange(0, 8, 1), np.arange(1, 9, 1))
#plt.tight_layout()
#ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%1d'))
#ax.xaxis.set_ticks(np.arange(1, 6, 1))
plt.show()

enter image description here

最佳答案

因此,据我了解,您需要两件事:1.调整颜色条的高度以匹配绘图的高度更改图形的大小,这样就不会太高它周围有很多空白空间。第一件事相对容易实现。对于第二个,我认为您必须手动指定图形大小。

import numpy as np
from matplotlib import pyplot as plt

def forceAspect(ax,aspect=1):
im = ax.get_images()
extent = im[0].get_extent()
ax.set_aspect(abs((extent[1]-extent[0])/(extent[3]-extent[2]))/aspect)

a=np.random.randn(8,4)
fig = plt.figure(1, figsize=(5,4))
plt.matshow(a,fignum=1)
ax=plt.gca()
forceAspect(ax,aspect=1)
plt.xticks(np.arange(0, 4, 1), np.arange(1, 5, 1))
plt.yticks(np.arange(0, 8, 1), np.arange(1, 9, 1))
cbar = plt.colorbar()
plt.draw()
pos_cbar = cbar.ax.get_position()
pos_ax = ax.get_position()
pos_cbar.y0 = pos_ax.y0
pos_cbar.y1 = pos_ax.y1
cbar.ax.set_position(pos_cbar)

plt.show()

关于python - 缩放后 matshow/imshow 图周围的额外空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com