python - 如何在 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
解决方案
每隔 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"))
推荐阅读
- javascript - 使一个处理程序为反应中的所有输入元素去抖动
- angular - Angular 6 中的“查看更多”按钮将打开所有段落,而不仅仅是一个段落
- ios - Amazon Rekognition 从流视频中检测名人
- wordpress - 在 Javascript 中更新 Gutenberg 全局调色板
- reactjs - 反应组件中'this'的用途是什么
- python - 获取线性回归模型的值错误
- php - Restful API 在 codeigniter 中抛出意外的输出
- python - 从 websocket 读取数据而不阻塞代码
- java - Scala 入门教程中“错误:无法找到或加载主类 Anne”的原因和修复
- ios - 在应用程序生命周期的中间将本地领域转换为同步领域(在 Swift 中)