【问题标题】:Plot x-axis in months以月为单位绘制 x 轴
【发布时间】:2020-06-24 15:37:57
【问题描述】:

我有一个数据框,想以月为单位绘制它,x 轴以日月格式标记,但它显示错误。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.dates import DateFormatter
%matplotlib inline

#import dataframe
d = {'values': [10, 5,2,1,4,5], 'dates': ['2013-10-09', '2013-11-20','2013-12-31','2014-01-25','2014-02-25','2014-03-25']}
df = pd.DataFrame(data=d)
df = df.set_index('dates')

#plot 

fig, ax = df['values'].plot(figsize=(16,8))

ax.set(xlabel="Date",
       ylabel="Value")

date_form = DateFormatter("%d-%m")

ax.xaxis.set_major_formatter(date_form)

plt.show()

我希望 x 轴采用“日-月”格式

【问题讨论】:

    标签: python python-3.x pandas matplotlib plot


    【解决方案1】:

    您的代码中有两件事:

    1. 您的索引是字符串索引,而不是日期时间
    2. df.plot 返回单轴实例,不能解压到fig, ax

    也就是说,这应该可行:

    # convert index to datetime
    df.index=pd.to_datetime(df.index)
    
    # plot, return only axis instance
    ax = df['values'].plot(figsize=(16,8))
    
    ax.set(xlabel="Date",
           ylabel="Value")
    
    date_form = DateFormatter("%d-%m")
    
    ax.xaxis.set_major_formatter(date_form)
    
    plt.show()
    

    输出:

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多