首页 > 解决方案 > 如何在 matplotlib 中选择股票频率显示?

问题描述

我用 matplotlib 绘制的情节是这样的,岁月的行情完全被卡住了。如何在 x 轴上每 5 年显示一次?

我在网上搜索,但只找到数字代码的方法,例如从 1 到 100。有人能告诉如何使用 Pandas 时间戳 DataFrame 执行此操作吗?

在此处输入图像描述

数据集是 pandas 的 DataFrame:

        GNE/GDP %
year    
2019    99.729671
2018    100.915299
2017    99.940717
2016    101.246334
2015    100.568631
2014    100.949748
2013    101.054224
2012    101.530067
2011    100.567683
2010    98.399090
2009    97.685794
2008    96.133632
2007    94.893945
2006    95.135254
2005    95.652966
2004    93.434032
2003    92.977219
2002    90.933152
2001    90.655336
2000    91.402208
1999    91.509345
1998    92.678088
1997    93.161984
1996    93.945123
1995    93.200337
1994    94.713991
1993    95.756522
1992    99.357175
1991    101.182983
1990    101.065315
1989    101.682365
1988    99.513835
1987    99.264576
1986    98.146524
1985    98.717486
1984    97.957351
1983    99.765455
1982    99.899540
1981    98.544671
1980    100.840835
1979    98.115966
1978    96.221612
1977    100.161245
1976    100.488848
1975    105.904866
1974    103.048577
1973    98.454769
1972    98.539955
1971    100.530122
1970    100.353896
1969    NaN
1968    NaN
1967    NaN
1966    NaN
1965    NaN
1964    NaN
1963    NaN
1962    NaN
1961    NaN
1960    NaN

标签: pythonpandasmatplotlib

解决方案


每隔 5 年使用以下设置

import matplotlib.dates as mdates

ax.xaxis.set_major_locator(mdate.YearLocator(base=None, interval=5, tz=None))
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y"))

推荐阅读