我有以下代码,显示以下图表。我无法在x轴上正确显示会计年度,并且它显示为好像是浮动的。我试图做astype(int)
但它没有用。关于我做错了什么想法?
p1 = plt.bar(list(asset['FISCAL_YEAR']),list(asset['TOTAL']),align='center')
plt.show()
答案 0 :(得分:4)
为了确保只有整数位置获得ticklabel,您可以使用带有整数的matplotlib.ticker.MultipleLocator
作为参数。
要格式化轴上的数字,您可以使用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()