python - Matplotlib Dataframe Plot 上缺少 X 轴标签
问题描述
我有一个常见问题,但其他建议的解决方案似乎不起作用,包括这个
当使用的种类为 Line 时,X 轴上的标签 [Years] 不显示。我会很感激有人运行代码并帮助解决它。先感谢您。
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()
解决方案
将年份转换为日期时间数据类型,如下所示:
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()
输出: