如何在2D绘图中重新调整变量范围?

时间:2013-11-22 15:47:09

标签: python matplotlib plot

在python matplotlib中,我想根据两个变量zx制作函数y的二维颜色图。参数x的范围远小于参数y,因此它几乎是不可见的,这是我绘制的时间。我想保持每个xy中的步骤数相同。如何重新调整x的范围?以下是我编写的代码的一部分。

x1,y1,z1 = np.loadtxt("TDFD_Effectualness_etta_%s_%s.dat" % (waveform2, waveform1)).T #Transposed for easier unpacking

nrows, ncols = final_step_j-1, final_step_k-1
grid1 = z1.reshape((nrows, ncols))

plt.xlabel('eta')
plt.ylabel('M_chirp')

plt.imshow(grid1, extent=(x1.min(), x1.max(), y1.min(), y1.max()), origin='lower', vmin=-5, vmax=5, 
        interpolation='nearest', 
        cmap=cm.gist_rainbow)
fig1 = plt.gcf()
fig1.suptitle('Effectualness_etta of %s and %s' % (waveform1, waveform2))
plt.colorbar()
plt.draw()
fig1.savefig('/home/saeed/pycbc/test/plots/New_Effectualness_etta_%s_%s.pdf' % (waveform1, waveform2), dpi=100)

plt.imshow(grid2, extent=(x2.min(), x2.max(), y2.min(), y2.max()), origin='lower', vmin=-5, vmax=5, 
        interpolation='nearest', 
        cmap=cm.gist_rainbow)

close('all')

1 个答案:

答案 0 :(得分:1)

我猜您正在尝试更改图像的纵横比。这可以使用aspect

imshow关键字来完成
plt.imshow(grid1,
    extent=(x1.min(), x1.max(), y1.min(), y1.max()),
    origin='lower', vmin=-5, vmax=5, aspect='auto',
    interpolation='nearest', cmap=cm.gist_rainbow)