matplotlib中的轴数字偏移量

时间:2016-08-31 15:36:56

标签: python matplotlib plot axes graphing

我正在使用matplotlib绘制内容,它看起来像这样:

enter image description here

我似乎无法弄清楚为什么x轴会像它一样偏移......它看起来像是在说,“无论你从我这里读到什么,都要加2.398e9到它是实际的x值'。

这不是我想要的......我可以只取前4位数字吗?

这代表频率,所以我希望看到的内容如下:

2000或2400或2800 ....我可以添加' MHz'轴标题中的一部分...但是,这一目标是不可读的。

这样做是因为它试图决定如何截断长数据吗?

这是绘图的代码:

plt.title(file_name +' at frequency '+ freq + 'MHz')
plt.xlabel('Frequency')
plt.ylabel('Conducted Power (dBm)')
plt.grid(True)
plt.plot(data['x'],data['y'])
#plt.axis([min(data['x']),max(data['x']),min(data['y'],max(data['y']))])
plt.savefig(file_name+'_'+freq)
print('plot written!')
#plt.show()
plt.close('all')

2 个答案:

答案 0 :(得分:1)

您需要.checkbox input:checked { border-color: red; background-color:red; } 来自import的某些格式化程序。这是full documentation to ticker

matplotlib.ticker

一旦你同样将它设置到你的情节,你应该能够看到+ 2.398e9消失。

一般来说,为避免科学记数法,请使用以下内容:

from matplotlib.ticker import ScalarFormatter, FormatStrFormatter
ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f'))

答案 1 :(得分:0)

如果你不想玩格式游戏而只想直接以MHz显示数值,那么你可以简单地将数据重新调整为以MHz而不是Hz。像

这样的东西
data['x'] /= 1000

然后将'MHz'添加到轴标签。