相关疑难解决方法(0)

Python,Matplotlib,subplot:如何设置轴范围?

如何将第二个子图的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 axis matplotlib range

258
推荐指数
3
解决办法
68万
查看次数

Python MatplotLib绘制x轴,第一个x轴值标记为1(而不是0)

我正在尝试使用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中解决这个问题?

python plot matplotlib python-2.7

5
推荐指数
3
解决办法
2万
查看次数

标签 统计

matplotlib ×2

python ×2

axis ×1

plot ×1

python-2.7 ×1

range ×1