Python Matplotlib中取消Y轴科学计数法,显示原始数值
解决Matplotlib Y轴显示原始数值的方法
Matplotlib自动启用科学计数法是因为Y轴数值跨度较大,用以下两种方法可以强制显示原始数值:
方法1:直接关闭科学计数法
调用plt.ticklabel_format(),指定Y轴、样式为普通格式,同时关闭偏移量显示:
plt.ticklabel_format(axis='y', style='plain', useOffset=False)
方法2:自定义刻度格式化器
导入StrMethodFormatter精准控制显示格式,比如保留0位小数(匹配你的整数数值):
from matplotlib.ticker import StrMethodFormatter plt.gca().yaxis.set_major_formatter(StrMethodFormatter('{x:.0f}'))
修改后的完整代码
import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import StrMethodFormatter Data = [['01', float(18535404.0)],['02', float(3460047.0)], ['03', float(3924627.0)],['04',float(3377404.0)], ['05',float(4006194.0)],['06',float(11077562.0)], ['07',float(2097105.0)],['08',float(2042300.0)], ['09',float(899693.0)],['10',float(7598384.0)], ['11',float(998367.0)]] DataFrame3 = pd.DataFrame(Data, columns=['Month', 'Sum']) plt.bar(DataFrame3['Month'], DataFrame3['Sum'], color=(0.2, 0.4, 0.6, 0.6)) # 两种方法二选一即可 plt.ticklabel_format(axis='y', style='plain', useOffset=False) # plt.gca().yaxis.set_major_formatter(StrMethodFormatter('{x:.0f}')) plt.show()
说明:useOffset=False是为了防止Matplotlib给数值添加偏移前缀(比如1e7),确保完整显示原始数值;如果你的数据需要保留小数,可修改方法2中的{x:.0f}为{x:.1f}(保留1位小数)等格式。
内容的提问来源于stack exchange,提问作者Pierre heriolo
相关产品推荐
相关产品推荐

