2015-11-06 36 views
0

看来,我不能同时设置等轴比例和设置图的大小。我在做什么是:如何改变等长宽比的地块大小?

fig = pl.figure(figsize=(20,20)) 
ax = fig.add_subplot(111) 
ax.set_aspect('equal') 

如果我删除figsize情节似乎有鳞相等,但figsize我有一个更大的阴谋,但规模不相等了。

编辑:图形不一定是正方形,只是更大..请假设我现在不轴线

的任何解决方案的准确率?

感谢

回答

0

如果你想改变的数据限制,使轴广场,加datalim您来电set_aspect

ax.set_aspect('equal', 'datalim') 

如果你想缩放来改变,这样的限制是不同但轴线看起来是平方的,您可以计算轴线尺寸比例并将其明确设置:

ax.set_aspect(1./ax.get_data_ratio()) 

例如

import numpy as np 
import matplotlib.pyplot as plt 

fig = plt.figure(figsize=(7,7)) 
ax = fig.add_subplot(111) 

x = np.linspace(0,np.pi,1000) 
y = np.sin(3*x)**2 
ax.plot(x,y) 
ax.set_aspect('equal', 'datalim') 
plt.show() 

enter image description here

import numpy as np 
import matplotlib.pyplot as plt 

fig = plt.figure(figsize=(7,7)) 
ax = fig.add_subplot(111) 

x = np.linspace(0,np.pi,1000) 
y = np.sin(3*x)**2 
ax.plot(x,y) 
ax.set_aspect(1./ax.get_data_ratio()) 
plt.show() 

enter image description here

+0

你的回答不工作,虽然我不是故意要执行一个正方形图形(内figsize的数字只是为例子,它可能是(10,20)或其他..)。其实我不想让它变成方形,我只是想让它变大。有没有办法做到这一点?谢谢 – nivniv