将y轴单位的科学记数缩写更改为字符串

时间:2018-05-14 17:13:45

标签: pandas matplotlib python-3.6

首先,我想道歉,因为我知道我没有正确地提出这个问题(这就是为什么我找不到可能是一个简单的答案的原因)。

我有图graph

正如您在y轴上方所见,它表示1e11意味着单位为100亿。我想将图表更改为100亿而不是1e11。

我不确定这样的符号是什么。

要明确我并不是要求将整个y轴更改为数字值,就像其他问题一样我只想将顶部1e11更改为对数学较少的人更具可读性。

ax.get_yaxis().get_major_formatter().set_scientific(False)

会导致enter image description here产生不良后果

1 个答案:

答案 0 :(得分:3)

import numpy as np
from matplotlib.ticker import FuncFormatter

def billions(x, pos):
    return '$%1.1fB' % (x*1e-9)

formatter = FuncFormatter(billions)

ax.yaxis.set_major_formatter(formatter)

位于https://matplotlib.org/examples/pylab_examples/custom_ticker1.html

生成enter image description here