2017-02-09 173 views
0

我密谋与imshow一个颜色表,但我不能让身材水平拉伸!拉伸imshow X轴

代码:

ylabels = ['0:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'] 

fig, ax = plt.subplots(figsize=(27, 7)) 

cax1 = ax.imshow(df7, origin='lower', cmap='viridis', interpolation='none', aspect=4) 
ax.set_xticklabels(label, fontsize = 12) 
plt.xticks(np.arange(len(df7.columns))) 

major_ticks = np.arange(0, 24, 3) 
ax.set_yticks(major_ticks) 
ax.set_yticklabels(ylabels, fontsize = 12) 


plt.rcParams['xtick.labelsize'] = 12 
plt.rcParams['ytick.labelsize'] = 12 
fig.autofmt_xdate() 



plt.colorbar(cax1,fraction=0.046, pad=0.04) 




fig.suptitle('November 2016 Normalized Pressure Data $[mbar]$',fontsize=15) 
fig.tight_layout(pad = 1) 

plt.show() 

fig.savefig('Pressure.png', dpi=300) 

我已经打过电话imshow时使用 “纵横”,但仍是结果是方形像素:

enter image description here

我怎么能伸展X轴填补整个数字的大小?

谢谢!

编辑:

我试过aspect='auto'aspect=0.25但还是同样的结果!

EDIT#2:

我除去ax.set_aspect(0.5)tight_layout重复,但还是图中没有填入到图象尺寸

回答

0

关键字参数aspect设置图像的纵横的整个空间。从the documentation

方面:“自动” | '平等'|标量],可选,默认值:无
如果'自动',则更改图像宽高比以匹配轴的图像宽高比。
如果'等于',且范围为无,则更改轴宽高比以匹配图像的宽高比。如果范围不是无,则轴纵横比将更改为与范围相匹配。
如果,默认的rc image.aspect值。

这样的想法是使用aspect='auto',而不是aspect=4

可以当然也可以使用一个数字值手动设置的方面。然而,对于X方向上的strech,该方面需要小于1,即aspect=0.25

+0

我也试过了(aspect ='auto'和aspect = 0.25),但它似乎不起作用: ( – ValientProcess

+0

“这似乎不工作”是不足够的问题说明。如果你谈论你的代码的问题,那么你当然会需要删除行'ax.set_aspect(0.5)',使用同样的论点在imshow或删除imshow参数,只使用'ax.set_aspect'。使用的每一个命令只有一次可以更容易地调试代码,所以有'在那里tight_layout'两次大概也就不是一个好主意。 – ImportanceOfBeingErnest

+0

也许你需要更好地解释你实际所说的“不填充图片大小的整个空间”。 – ImportanceOfBeingErnest