如何制作非方形轮廓图

时间:2011-03-24 11:56:46

标签: python matplotlib

我在pyplot中使用contourf来绘制一些标量数据,但是当我的域是非正方形时,我觉得数据被误传,因为它总是将它绘制成正方形(尽管轴的值会在一侧增加得更快。)我如何强制轴缩放相等,这样如果我的域在x方向上是两倍长,那么图像实际上是用这个属性绘制在一个矩形中的?

我正在做这样的事情:

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()

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

This might help

ax = fig.add_subplot(111, aspect="equal")

答案 2 :(得分:0)

您需要更改轴设置:

axis('equal')

在此处查看所有轴设置:

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.axis