2011-03-24 60 views
2

我在pyplot中使用contourf来绘制一些标量数据,但是当我的域是非正方形时,我觉得数据被歪曲,因为它总是绘制在一个正方形中尽管坐标轴的值在一侧会增加得更快)。我如何强制轴缩放比例相等,这样,如果我的域在x方向上长了两倍,则图像实际上会绘制在具有此属性的矩形中?如何使一个非正方形contourf-plot

我在做这样的事情:

import matplotlib.pyplot as plt 
fig = plt.figure() 
ax = fig.add_subplot(111) 
contour = ax.contourf(X,Y,Z) 
fig.colorbar(contour) 
fig.canvas.draw() 

回答

5

使用ax.set_aspect

import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.add_subplot(111) 
x=np.r_[-10:10:100j] 
y=np.r_[-20:20:100j] 
z= np.add.outer(x*x, y*y) 
contour=ax.contour(x,y,z) 
fig.colorbar(contour) 
ax.set_aspect('equal') 
# ax.axis('equal') 
plt.show() 

产量

enter image description here

同时改变ax.set_aspect('equal')

ax.axis('equal') 

收率

enter image description here

相关问题