Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 轴上的日期显示为1月51日,而不是1月20日_Python_Date_Matplotlib_Subplot_X Axis - Fatal编程技术网

Python 轴上的日期显示为1月51日,而不是1月20日

Python 轴上的日期显示为1月51日,而不是1月20日,python,date,matplotlib,subplot,x-axis,Python,Date,Matplotlib,Subplot,X Axis,第一个问题,如果有什么不清楚,我可以澄清 如果我把最后三行注释掉,我的图表看起来没问题——但是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-0

第一个问题,如果有什么不清楚,我可以澄清

如果我把最后三行注释掉,我的图表看起来没问题——但是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\u 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))
输出:


在grp.plot()Genius中使用
x_compat=True
!!谢谢-感谢您的帮助它工作得很好!