嘿..我的python代码遇到了一些问题..我有一组频率和功率谱的值。我需要在对数刻度上绘制频率v / s功率谱。我试图将频率和功率谱的对数值存储在2个其他变量中然后绘制它们。任何想法如何做到这一点?
答案 0 :(得分:5)
假设您有一个值列表,您可以使用简单的列表解析:
frequencies = [1, 2, 3, 4, 5]
import math
logOfFrequencies = [ math.log(x) for x in frequencies ]
或者
logOfFrequencies = map(math.log, frequencies)
如果你有一个频繁的频率数组,因为你使用Matplotlib / Pylab创建你的情节,你可以改为:
import numpy
frequencies = numpy.arange(1, 5)
logOfFrequencies = numpy.log(frequencies)
答案 1 :(得分:3)
如果您只想以对数比例绘制数据,请考虑matplotlib
方法,loglog
和semilogx
以及semilogy
:
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.loglog
http://matplotlib.sourceforge.net/plot_directive/mpl_examples/pylab_examples/log_demo.py
这样可以避免计算各种数组的日志,并允许您精确定制各种数量的显示方式。