Matplotlib浮点值在轴上而不是整数

jax*_*jax 3 matplotlib pandas

我有下面的代码,显示以下情节。我无法在x轴上正确显示会计年度,并且好像在浮动一样。我试图做astype(int),但没有用。关于我在做什么错的任何想法吗?

p1 = plt.bar(list(asset['FISCAL_YEAR']),list(asset['TOTAL']),align='center')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是情节: 在此处输入图片说明

Imp*_*est 5

为了确保只有整数位置才能获得刻度标签,可以使用matplotlib.ticker.MultipleLocator带有整数的a 作为参数。

要在轴上格式化数字,可以使用matplotlib.ticker.StrMethodFormatter

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

df = pd.DataFrame({"FISCAL_YEAR" : np.arange(2000,2017),
                   'TOTAL' : np.random.rand(17)})

plt.bar(df['FISCAL_YEAR'],df['TOTAL'],align='center')


locator = matplotlib.ticker.MultipleLocator(2)
plt.gca().xaxis.set_major_locator(locator)
formatter = matplotlib.ticker.StrMethodFormatter("{x:.0f}")
plt.gca().xaxis.set_major_formatter(formatter)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明