semilogx Python图中x轴上的更多刻度

时间:2013-11-05 22:08:27

标签: python numpy matplotlib plot

我想在这个图的x轴上有更多的刻度(例如20hz,40hz,80hz,160hz,320hz,640hz等的刻度线):

enter image description here

您是否知道如何调整此代码:?

from numpy import cos, sin, pi, absolute, arange, log10, linspace
from pylab import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show, semilogx

f=linspace(20,20000, num=100)
ampl=linspace(-5,1, num=100)

semilogx(f, ampl, linewidth=2)
xlabel('Frequency (Hz)')
ylabel('Gain (dB)')
title('Frequency Response')
xlim(20, 20000)
ylim(-150, 10)
grid(True)
show()

PS:由于给出的答案,这是解决方案:

t=[1,2,4,8,16,32,64,128,256,512,1024]` 
t1= [x*20 for x in t]
xticks(t1,t1)

2 个答案:

答案 0 :(得分:3)

请尝试xticks(),我认为这就是您所需要的。

答案 1 :(得分:0)

任何遇到此事的人的说明 - 请务必在 xticks()之前调用semilogx(),否则您的标签将被重置