我想在频率上产生一些图。我想要有一个带有上标符号的x轴,如here。 此外,我需要垂直注释单独千赫和兆赫兹的垂直线。matplotlib带上标的剔号轴
import numpy as np
import matplotlib.pyplot as plt
band = np.linspace(0,10**12,100)
y = band
plt.plot(band,y)
plt.xlabel('Frequencies')
plt.vlines(10**3, min(y), max(y),colors = 'black', label = 'kilo Hz')
plt.vlines(10**6, min(y), max(y),colors = 'black', label = 'mega Hz')
plt.legend()
plt.show()
我试图使用ticker但无法弄清楚如何设置它。我试图按照some的例子,但有错误,如AttributeError: 'Figure' object has no attribute 'ticklabel_format'
已经花了相当多的时间,并不知道如何前进。
一般来说,我需要x轴以类似的方式格式化,比如果plt.xscale('log')
但我想保持线性缩放。
你能告诉使用_doesn't_工作的代码? – tacaswell 2013-05-13 18:53:37
另外,使用'axvline'而不是'vlines'作为垂直线。 – tacaswell 2013-05-13 18:54:41
我试着用不同配置的'matplotlib.ticker.Formatter',并且我尝试了很多不再存在的行。同样对于'set_major_formatter',我得到像'object has no attribute'这样的错误 – tomasz74 2013-05-13 19:01:47