matplotlib中的轴数值偏移

2024-10-01 22:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我用matplotlib绘制了一些东西,看起来像这样:

enter image description here

我好像搞不懂为什么x轴会像现在这样偏移…它好像在说,“不管你从我这里读到什么,把2.398e9加到它的实际x值上”。在

这不是我想要的…我能让它只使用前4位数吗?在

这代表频率,所以我想看看下面的内容:

2000或2400或2800…我可以在axis标题中添加“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')

Tags: namedataplotmatplotlib绘制pltminmax
2条回答

如果您不想玩格式化游戏,而是直接以MHz显示值,那么您可以简单地将数据缩放为MHz而不是Hz。有点像

data['x'] /= 1000

然后将“MHz”添加到轴标签中。在

您需要import中的某些格式化程序。这是full documentation to ticker

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

一旦你把这个设置成你的绘图,你应该可以看到+2.398e9消失了。在

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

^{pr2}$

相关问题 更多 >

    热门问题