我正在尝试重新格式化 x 轴,但我所做的一切都不起作用 当我使用:
import pandas as pd
import matplotlib.pyplot as plt
z = pd.DataFrame([[2000,1,2],[2001,2,3],[2004,5,6]])
z=z.set_index(0)
z.plot()
plt.show()
x 轴标签格式为 2,000.0 到 2,000.0
如何让它简单地显示 2000 2001 2002 2003 2004 (没有逗号,没有小数点)?
可以使用
matplotlib.ticker
模块中的
Formatter
类来更改 x 轴刻度的格式。在本例中,可以使用
ticker.FixedLocator
来设置刻度的位置,并使用
ticker.StrMethodFormatter
来设置刻度的格式。
以下是更新后的代码:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
z = pd.DataFrame([[2000,1,2],[2001,2,3],[2004,5,6]])
z = z.set_index(0)
z.plot()
# 设置 x 轴刻度的位置和格式
plt.gca().xaxis.set_major_locator(ticker.FixedLocator([2000, 2001, 2002, 2003, 2004]))
plt.gca().xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:.0f}'))
plt.show()
这将生成一个图表,其中 x 轴标签格式化为
2000 2001 2002 2003 2004
,没有逗号和小数点。
以下是代码的解释:
-
plt.gca().xaxis.set_major_locator(ticker.FixedLocator([2000, 2001, 2002, 2003, 2004]))
: 这行代码将 x 轴刻度的位置设置为[2000, 2001, 2002, 2003, 2004]
。 -
plt.gca().xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:.0f}'))
: 这行代码将 x 轴刻度的格式设置为'{x:.0f}'
。{x:.0f}
是一个格式字符串,表示将值x
格式化为没有小数点的浮点数。
希望这能帮助!
标签:python,pandas,matplotlib,pycharm From: 78781280