【问题标题】:python and pandas plot between two dates index value两个日期索引值之间的python和pandas图
【发布时间】:2020-03-11 20:35:41
【问题描述】:

我有以下数据框

DATE;NORD
2017-01-01 00:00:00;51.22
2017-01-01 01:00:00;53.0
2017-01-01 02:00:00;52.0
2017-01-01 03:00:00;51.0
2017-01-01 04:00:00;47.27
2017-01-01 05:00:00;45.49
2017-01-01 06:00:00;45.69
2017-01-01 07:00:00;48.07
...

我把它读成:

DF = pd.read_csv(fname, sep=';',index_col=0, header = 0)

我想在 matplolib 框架中绘制它,但在两个日期之间进行选择,同时我希望将日期设置为 x-ticks。

我通常用来绘制所有数据框,很容易得到我想要的:

ax.plot(DATAF.index.values,DATAF['NORD'].values)

但是,当我只想在两个选定日期之间进行绘图时,我遇到了问题。下面是一个例子:

sp = '2017-01-01 00:00:00'
ep = '2017-01-02 00:00:00'

ax.plot(DF.index.values[sp:ep],DF.loc[sp:ep,:].values) 

它不起作用。它似乎没有问题:

DF.loc[sp:ep,:].values)

但有

DF.index.values[sp:ep]

感谢您的任何帮助或建议。

迭戈

【问题讨论】:

    标签: python pandas datetime matplotlib


    【解决方案1】:

    你也在那里。您可以过滤然后使用DataFrame.plot 函数:

    df.loc[sp:ep].plot(y='NORD')
    

    或者如果您更喜欢直接使用 matplotlib:

    df_plot = df.loc[sp:ep]
    ax.plot(df_plot.index, df_plot['NORD'])
    

    【讨论】:

    • 谢谢。但是,结果不可读。我试过 #ax.xaxis.set_major_formatter(dates.DateFormatter(r'\textbf{%Y-%m-%d}')) 但它似乎不起作用。
    • 我明白了。我必须将索引转换为日期。 DF.index = pd.to_datetime(DF.index)
    猜你喜欢
    • 2014-03-07
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2018-06-10
    • 2017-09-02
    • 2017-04-16
    相关资源
    最近更新 更多