You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何取消DataFrame水平条形图的轴科学计数法,显示完整数值?

Pandas水平条形图坐标轴科学计数法转完整数值的解决方法

我用Pandas的DataFrame绘制水平条形图时,坐标轴默认显示为科学计数法,希望改成完整的数值格式。代码如下:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.style


data = {'V': [116302,797183,1736044,311815,83692,131565],
        'O': [59019,381176,896383,168083,41923,77694],
        'I': [57283,416007,839661,143732,41769,53871]
       }
df = pd.DataFrame(data,columns=['V','O','I'], index = ['1550','1600','1650','1700','1750','1800'])

plt.style.use('seaborn-bright')
df.plot.barh()

plt.show()

当前图表效果:
水平条形图科学计数法坐标轴


方法一:直接关闭科学计数法

调用matplotlib的ticklabel_format方法,指定坐标轴(水平条形图的数值轴是x轴)关闭科学计数法,简单直接:

修改后的完整代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.style


data = {'V': [116302,797183,1736044,311815,83692,131565],
        'O': [59019,381176,896383,168083,41923,77694],
        'I': [57283,416007,839661,143732,41769,53871]
       }
df = pd.DataFrame(data,columns=['V','O','I'], index = ['1550','1600','1650','1700','1750','1800'])

plt.style.use('seaborn-bright')
df.plot.barh()

# 关闭x轴科学计数法,显示完整数值
plt.ticklabel_format(axis='x', style='plain', useOffset=False)

plt.show()

关键参数说明:

  • axis='x':指定设置水平条形图的数值轴(x轴)
  • style='plain':切换为普通数值格式,禁用科学计数法
  • useOffset=False:避免添加偏移量前缀,直接显示完整数字

方法二:自定义格式化函数(支持个性化显示)

如果需要更灵活的格式(比如添加千分分隔符),可以使用FuncFormatter自定义格式化规则:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.style
from matplotlib.ticker import FuncFormatter


data = {'V': [116302,797183,1736044,311815,83692,131565],
        'O': [59019,381176,896383,168083,41923,77694],
        'I': [57283,416007,839661,143732,41769,53871]
       }
df = pd.DataFrame(data,columns=['V','O','I'], index = ['1550','1600','1650','1700','1750','1800'])

plt.style.use('seaborn-bright')
ax = df.plot.barh()

# 定义格式化函数,显示带千分分隔符的完整数字
def format_num(x, pos):
    return f'{int(x):,}'

# 将格式化规则应用到x轴
ax.xaxis.set_major_formatter(FuncFormatter(format_num))

plt.show()

内容的提问来源于stack exchange,提问作者Minatorecoin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:55:19