我正在尝试使用matplotlib在Python中创建一个图。我先写下面的代码:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(r'Plot_Example.csv',sep=';')
df = df.set_index("Date")
fig, ax = plt.subplots()
fig.set_size_inches(18.5, 18.5)
ax.plot(df["Yt"], label="Yt",color='blue')
ax.plot(df["X1t"], label="X1t",color='red')
ax.plot(df["X2t"],
label="X2t",color='yellow')
ax.legend() fig.savefig('test3png.png',dpi=100)
字符串
更多信息:
df.info()
<class 'pandas.core.frame.DataFrame'> Index: 96 entries, 1/1/1949 to
1/12/1956 Data columns (total 3 columns): # Column Non-Null Count
Dtype
--- ------ -------------- ----- 0 Yt 96 non-null int64 1 X1t 96 non-null int64 2 X2t 96 non-null int64
dtypes: int64(3) memory usage: 2.6+ KB
型
一切顺利,我得到以下图表:
的数据
问题是我无法看到横轴中的日期值。有没有办法设置轴的格式?
我尝试了以下几点:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import YearLocator, DateFormatter
df = pd.read_csv(r'Plot_Example.csv',sep=';')
df["Date"] = pd.to_datetime(df["Date"])
df = df.set_index("Date")
fig, ax = plt.subplots()
fig.set_size_inches(18.5, 18.5)
ax.plot(df["Yt"], label="Yt",color='blue')
ax.plot(df["X1t"],
label="X1t",color='red')
ax.plot(df["X2t"], label="X2t", color='yellow')
years = mdates.YearLocator()
yearsFmt = mdates.DateFormatter('\n%Y') ?
ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
ax.legend()
fig.savefig('test3png.png', dpi=100)
型
我得到了很好的x轴格式,但是在y轴上绘制时间序列时得到了错误的结果。
的
如何从原始图像中格式化x轴或在第二个图像中修复时间序列绘图?
1条答案
按热度按时间b5lpy0ml1#
你只能在x轴上保留第n个日期(在下面的代码中,我选择了n=10)。此外,您可以旋转标签以避免重叠:
字符串