1

我有一个看起来像这样的情节:

在此处输入图像描述

如何增加 x 轴上显示的年数,使其看起来像这样:

在此处输入图像描述

如您所见,它已显示所有年份,但 matplotlib 上的默认设置并未显示所有年份。
如果我这样做了,plt.xticks(data.index)我仍然没有看到所有这些年。

在此处输入图像描述

我按照答案中的说明进行了尝试_=plt.xticks(ticks=range(1970,2020,2)) ,但我得到了以下图表。

在此处输入图像描述

人口是这样的:

population
Out[49]: 
1960-01-01    180671000.0
1961-01-01    183691000.0
1962-01-01    186538000.0
1963-01-01    189242000.0
1964-01-01    191889000.0
1965-01-01    194303000.0
1966-01-01    196560000.0
1967-01-01    198712000.0
1968-01-01    200706000.0
1969-01-01    202677000.0
1970-01-01    205052000.0
1971-01-01    207661000.0
1972-01-01    209896000.0
1973-01-01    211909000.0
1974-01-01    213854000.0
1975-01-01    215973000.0
1976-01-01    218035000.0
1977-01-01    220239000.0
1978-01-01    222585000.0
1979-01-01    225055000.0
1980-01-01    227225000.0
1981-01-01    229466000.0
1982-01-01    231664000.0
1983-01-01    233792000.0
1984-01-01    235825000.0
1985-01-01    237924000.0
1986-01-01    240133000.0
1987-01-01    242289000.0
1988-01-01    244499000.0
1989-01-01    246819000.0
1990-01-01    249623000.0
1991-01-01    252981000.0
1992-01-01    256514000.0
1993-01-01    259919000.0
1994-01-01    263126000.0
1995-01-01    266278000.0
1996-01-01    269394000.0
1997-01-01    272657000.0
1998-01-01    275854000.0
1999-01-01    279040000.0
2000-01-01    282162411.0
2001-01-01    284968955.0
2002-01-01    287625193.0
2003-01-01    290107933.0
2004-01-01    292805298.0
2005-01-01    295516599.0
2006-01-01    298379912.0
2007-01-01    301231207.0
2008-01-01    304093966.0
2009-01-01    306771529.0
2010-01-01    309321666.0
2011-01-01    311556874.0
2012-01-01    313830990.0
2013-01-01    315993715.0
2014-01-01    318301008.0
2015-01-01    320635163.0
2016-01-01    322941311.0
2017-01-01    324985539.0
2018-01-01    326687501.0
2019-01-01    328239523.0
dtype: float64
4

2 回答 2

2

您可能希望显式设置刻度值的范围,例如:

_=plt.xticks(ticks=range(1970,2020,2))
于 2020-07-10T17:31:30.503 回答
1

我想您正在从一个data.csv文件中加载数据,其中有两列:timepopulation. 您可以加载数据并将time列格式设置为日期时间。然后你可以绘制population; ax.xaxis.set_major_locator最后,您可以通过和ax.xaxis.set_major_formatter方法调整 xaxis 刻度。检查此代码作为参考:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md

df = pd.read_csv('data.csv')
df.set_index('time', inplace = True)
df.index = pd.to_datetime(df.index, format = '%Y-%m-%d')

fig, ax = plt.subplots(figsize = (10, 5))

ax.plot(df['population'])

ax.xaxis.set_major_locator(md.YearLocator())
ax.xaxis.set_major_formatter(md.DateFormatter('%Y'))
plt.setp(ax.xaxis.get_majorticklabels(), rotation = 90)
ax.set_xlim([df.index[0], df.index[-1]])

plt.show()

这给了我这个情节:

在此处输入图像描述

和:

  • ax.xaxis.set_major_locator(md.YearLocator())我告诉 matplotlib 每年打勾
  • ax.xaxis.set_major_formatter(md.DateFormatter('%Y'))我告诉 matplotlib 每个刻度只写年份,忽略月份和日期
  • plt.setp(ax.xaxis.get_majorticklabels(), rotation = 90)我告诉metplotlib 将刻度标签旋转90°
  • ax.set_xlim([df.index[0], df.index[-1]])我告诉 matplotlib 修复情节的末端
于 2020-07-10T18:14:05.360 回答