gpt4 book ai didi

python-2.7 - pyplot 中的等宽绘图大小,同时保持纵横比相等

转载 作者:行者123 更新时间:2023-12-02 00:46:30 27 4
gpt4 key购买 nike

我想让两个图的宽度相同,但是生成的代码缩小了 imshow 图。

xx = np.linspace(0.0,255.5,512)
yy = np.linspace(0.0,255.5,512)
Func = np.random.rand(len(xx),len(yy))

f, axarr = plt.subplots(2,1)
f.tight_layout()

im = axarr[0].imshow(Func, cmap = 'jet', interpolation = 'lanczos',origin = 'lower')
pos = axarr[0].get_position()
colorbarpos = [pos.x0+1.05*pos.width,pos.y0,0.02,pos.height]
cbar_ax = f.add_axes(colorbarpos)
cbar = f.colorbar(im,cax=cbar_ax)

axarr[1].plot(xx,Func[:,255],yy,Func[255,:])

plt.show()
plt.close('all')

编辑:我还想让 imshow 的情节看起来不被拉伸(stretch)(本质上,我需要适当拉伸(stretch)宽度和长度,以便纵横比仍然相等)。

最佳答案

一些选项:

A. `方面=“自动”

在 imshow 图上使用 `aspect="auto"

    plt.imshow(...,  aspect="auto")

enter image description here

B.调整图形边距

调整图形边距或图形大小,使下轴的大小与 imshow 图的大小相同,例如

    plt.subplots_adjust(left=0.35, right=0.65)

enter image description here

C.使用分隔线

您可以使用 mpl_toolkits.axes_grid1 中的 make_axes_locatable 功能来划分图像轴以为其他轴腾出空间。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np

xx = np.linspace(0.0,255.5,512)
yy = np.linspace(0.0,255.5,512)
Func = np.random.rand(len(xx),len(yy))

fig, ax = plt.subplots(figsize=(4,5))

im = ax.imshow(Func, cmap = 'jet', interpolation = 'lanczos',origin = 'lower')

divider = make_axes_locatable(ax)
ax2 = divider.append_axes("bottom", size=0.8, pad=0.3)
cax = divider.append_axes("right", size=0.08, pad=0.1)

ax2.plot(xx,Func[:,255],yy,Func[255,:])
cbar = fig.colorbar(im,cax=cax)

plt.show()

enter image description here

关于python-2.7 - pyplot 中的等宽绘图大小,同时保持纵横比相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43373224/

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