如何将第二个子图的y轴范围设置为例如[0,1000]?我的数据(文本文件中的一列)的FFT图导致(inf.?)峰值,因此实际数据不可见.
pylab.ylim([0,1000])
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有任何效果.这是整个脚本:
# based on http://www.swharden.com/blog/2009-01-21-signal-filtering-with-python/
import numpy, scipy, pylab, random
xs = []
rawsignal = []
with open("test.dat", 'r') as f:
for line in f:
if line[0] != '#' and len(line) > 0:
xs.append( int( line.split()[0] ) )
rawsignal.append( int( line.split()[1] ) )
h, w = 3, 1
pylab.figure(figsize=(12,9))
pylab.subplots_adjust(hspace=.7)
pylab.subplot(h,w,1)
pylab.title("Signal")
pylab.plot(xs,rawsignal)
pylab.subplot(h,w,2)
pylab.title("FFT")
fft = scipy.fft(rawsignal)
#~ pylab.axis([None,None,0,1000])
pylab.ylim([0,1000])
pylab.plot(abs(fft))
pylab.savefig("SIG.png",dpi=200)
pylab.show()
Run Code Online (Sandbox Code Playgroud)
其他改进也值得赞赏!
我正在尝试使用python和matplotlib绘制矢量。
我的问题是在matplotlib.pyplot中,我的数据的x轴从0开始,在23结束。在图中考虑了相同的问题。
我想要的是该轴以标签1(与第一个y值或自然python索引中的值#0有关)开始,并在24(与最后一个y值或自然python索引中的值#23有关)上结束)。
我尝试了pp.xlim(xmin = 1),但是问题是这样,第一个维度(0)在图形中消失了,上限继续为23。我希望它为24,第一个y x值标记为1(非0)的值。
此解决方案不适用于我。我正在尝试在图形的x轴上使用标签[1,24],而不是[0,23]。如我所写,如果我使用xlim = 1或set_xlim = 1从x轴的1开始,则图形中将不会显示第一个y值(向量的尺寸0)。它以第二个y值(向量的维1)开始,并以最后一个值结束。我不要 这是我正在使用的源代码。
import matplotlib.pyplot as pp
import numpy as np
a=np.array( [0.10478151, 0.09909564, 0.01319826, 0.00743225, 0.00483721, 0.18202419, 0.01732046, 0.04153536, 0.03317991, 0.0536289, 0.00585423, 0.00929871, 0.00629363, 0.12180654, 0.00607781, 0.03752038, 0.05547452, 0.01459015, 0.00604909, 0.01132442, 0.00710363, 0.11159429, 0.0079922, 0.04198672])
pp.xlabel('Dimension')
pp.ylabel('Importance')
ax=pp.subplot(111)
ax.set_xlim(1, 24)
dim=np.arange(1,24,1);
ax.plot(a, 'ro', color='r',linewidth=1.0, label="Graph2")
pp.xticks(dim)
pp.grid()
pp.show()
pp.close()
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,生成的图像是下面的图像:

预期第一个y值将在x = 1中显示,最后一个y将在x = 24中显示。但是Python索引从0开始,因此,看起来代码正在“移动”值,从x = 2(或在python自然索引中为x = 1)开始。
这里提出的解决方案对我没有帮助,因为它不会显示第一个值(0)。我想要显示所有值,但标签必须以1开头并以24结尾。问题是python索引将从0开头并以23结尾。
如何在python中解决这个问题?