Python Matplotlib数据框绘图上缺少X轴标签

Python Matplotlib数据框绘图上缺少X轴标签,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个共同的问题,但其他建议的解决方案似乎不起作用,包括 使用的种类为直线时,X轴上的标签[年份]不显示。我很感激有人运行代码并帮助解决它。 先谢谢你 import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.read_csv('https://raw.githubusercontent.com/princeinzion/NigeriaGDPtoPopulation/master/API_N

我有一个共同的问题,但其他建议的解决方案似乎不起作用,包括

使用的种类为直线时,X轴上的标签[年份]不显示。我很感激有人运行代码并帮助解决它。 先谢谢你

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('https://raw.githubusercontent.com/princeinzion/NigeriaGDPtoPopulation/master/API_NGA_DS2_en_csv_v2_10185307.csv', skiprows=4)

df = data.loc[[620, 1168], '1999':'2017']

df = df.T

dfp = df.pct_change()

dfp = dfp.reset_index()
dfp.columns = ['Years', 'Population', 'GDP']
dfp

fig = plt.figure(figsize=(20,10))

ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

dfp.plot(kind='line',x='Years',y='GDP', color='red', ax=ax1)
dfp.plot(kind='line',x='Years',y='Population', color='blue', ax=ax2)

plt.show()
下面是我得到的结果。年份不显示在X轴上。

将年份转换为日期时间数据类型,如下所示:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('https://raw.githubusercontent.com/princeinzion/NigeriaGDPtoPopulation/master/API_NGA_DS2_en_csv_v2_10185307.csv', skiprows=4)

df = data.loc[[620, 1168], '1999':'2017']

df = df.T

dfp = df.pct_change()

dfp = dfp.reset_index()
dfp.columns = ['Years', 'Population', 'GDP']
dfp['Years'] = pd.to_datetime(dfp['Years'])
dfp

fig = plt.figure(figsize=(20,10))

ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

dfp.plot(kind='line',x='Years',y='GDP', color='red', ax=ax1)
dfp.plot(kind='line',x='Years',y='Population', color='blue', ax=ax2)

plt.show()
输出:


您的年份列是一个字符串。您需要将其转换为int。您的建议并不完全有效。图表不再显示年份的完整范围。有什么建议吗