在Python绘图中重新缩放轴

时间:2014-08-08 18:23:43

标签: python matplotlib plot axis scaling

在下面的代码中,随着我的成长," Ns" (例如," Ns = 1000")更多的cossine函数在[-pi,pi]间隔中显得平滑。我的目的是重新缩放k轴,将其除以因子" pi",使得图形在[-1,1]区间中定义。但是,当我这样做时,请说

k2=[]
    for i in k:
    k2.append(i/pi)

和绘图(k2,en(k2)而不是(k,en(k),绘制的图表假定抛物线形式比正确的cossine形式更多。我将提供任何帮助。

主要代码是:

def en(k):
return -2*cos(k) 

k=[]
e=[]

Ns=input('Ns: ')

n=[0]
for i in range(0,Ns/2+1):
    if i==0:
        continue
    else:
        n.append(i)
        n.append(-i)

if len(n)>Ns:  
    del n[0]

for i in n:
k.append(2*pi*i/Ns)

k.sort()

plt.plot(k,en(k),'b-')
plt.show()

1 个答案:

答案 0 :(得分:0)

我认为你想要的是cos(x*pi)而不是cos(x/pi)。这样你就可以获得类似[-1,1] - 周期性的相似形状的函数。所以只需重新定义

def en(k):
    return -2*cos(pi*k)

k转换为k2的表达式可以更简单地写为k2 = [i*pi for i in k]。这被称为“列表理解”,你的代码看起来会更好一些(可能减少到4-5行)。