-Axis 上的日期显示为 1 月 51 日而不是 1 月 20 日
Dates on -Axis showing as Jan 51 instead of Jan 20
这里是第一个问题,如果有什么不清楚的地方,我可以澄清...
如果我注释掉最后三行,我的图表看起来没问题 - 但 X 轴上的日期不会以我想要的格式 (MMM-YY) 显示,如果我根据其他内容更改为以下内容阅读我收到的是 1 月 51 日而不是 1 月 20 日?
希望得到一些想法!
谢谢,
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
data= [['2020-01-01',70,'bra'],['2020-01-01',80,'mex'],
['2020-01-05',40,'bra'],['2020-01-05',50,'mex'],
['2020-01-09',30,'bra'],['2020-01-09',20,'mex']]
df=pd.DataFrame(data,columns=['date','value','country'])
df['date']=pd.to_datetime(df['date'],format = '%Y-%m-%d')
#create subplot
fig = plt.figure(figsize=(12,5))
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
for key,grp in df.groupby(['country']):
ax1 = grp.plot(kind='line',x='date', y='value', ax=ax1,label=key
,title='Values')
ax1.set_axisbelow(True)
ax1.grid(linestyle='-',linewidth='0.5',color='black')
ax1.set_ylim([0,100])
ax1.set_ylabel('values')
monthyearFmt = mdates.DateFormatter('%b %y')
ax1.xaxis.set_major_formatter(monthyearFmt)
ax1.xaxis.set_major_locator(mdates.DayLocator(interval=60))
使用x_compat=True
:
#create subplot
fig = plt.figure(figsize=(12,5))
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
for key,grp in df.groupby(['country']):
ax1 = grp.plot(kind='line',x='date', y='value', ax=ax1,label=key
,title='Values', x_compat=True)
ax1.set_axisbelow(True)
ax1.grid(linestyle='-',linewidth='0.5',color='black')
ax1.set_ylim([0,100])
ax1.set_ylabel('values')
monthyearFmt = mdates.DateFormatter('%b %d %Y')
ax1.xaxis.set_major_formatter(monthyearFmt)
ax1.xaxis.set_major_locator(mdates.DayLocator(interval=2))
输出:
这里是第一个问题,如果有什么不清楚的地方,我可以澄清...
如果我注释掉最后三行,我的图表看起来没问题 - 但 X 轴上的日期不会以我想要的格式 (MMM-YY) 显示,如果我根据其他内容更改为以下内容阅读我收到的是 1 月 51 日而不是 1 月 20 日?
希望得到一些想法!
谢谢,
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
data= [['2020-01-01',70,'bra'],['2020-01-01',80,'mex'],
['2020-01-05',40,'bra'],['2020-01-05',50,'mex'],
['2020-01-09',30,'bra'],['2020-01-09',20,'mex']]
df=pd.DataFrame(data,columns=['date','value','country'])
df['date']=pd.to_datetime(df['date'],format = '%Y-%m-%d')
#create subplot
fig = plt.figure(figsize=(12,5))
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
for key,grp in df.groupby(['country']):
ax1 = grp.plot(kind='line',x='date', y='value', ax=ax1,label=key
,title='Values')
ax1.set_axisbelow(True)
ax1.grid(linestyle='-',linewidth='0.5',color='black')
ax1.set_ylim([0,100])
ax1.set_ylabel('values')
monthyearFmt = mdates.DateFormatter('%b %y')
ax1.xaxis.set_major_formatter(monthyearFmt)
ax1.xaxis.set_major_locator(mdates.DayLocator(interval=60))
使用x_compat=True
:
#create subplot
fig = plt.figure(figsize=(12,5))
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
for key,grp in df.groupby(['country']):
ax1 = grp.plot(kind='line',x='date', y='value', ax=ax1,label=key
,title='Values', x_compat=True)
ax1.set_axisbelow(True)
ax1.grid(linestyle='-',linewidth='0.5',color='black')
ax1.set_ylim([0,100])
ax1.set_ylabel('values')
monthyearFmt = mdates.DateFormatter('%b %d %Y')
ax1.xaxis.set_major_formatter(monthyearFmt)
ax1.xaxis.set_major_locator(mdates.DayLocator(interval=2))
输出: