【问题标题】:Python - Plot a graph with times on x-axisPython - 在 x 轴上绘制时间图
【发布时间】:2020-09-18 21:29:26
【问题描述】:

我在 pandas 中有以下数据框:

dfClicks = pd.DataFrame({'clicks': [700,800,550],'date_of_click': ['10/25/1995 
03:30','10/25/1995 04:30','10/25/1995 05:30']})

dfClicks['date_of_click'] = pd.to_datetime(dfClicks['date_of_click'])

dfClicks.set_index('date_of_click')

dfClicks.clicks = pd.to_numeric(dfClicks.clicks)

您能否告诉我如何绘制上面的图,使 x 轴显示日期/时间,y 轴显示点击次数?我还需要在同一图表上绘制另一个数据框,其中包括预测的点击次数,以进行比较。测试可以是上面的复制品,但有细微的变化:

dfClicks2 = pd.DataFrame({'clicks': [750,850,500],'date_of_click': ['10/25/1995 
    03:30','10/25/1995 04:30','10/25/1995 05:30']})

dfClicks2['date_of_click'] = pd.to_datetime(dfClicks2['date_of_click'])

dfClicks2.set_index('date_of_click')

dfClicks2.clicks = pd.to_numeric(dfClicks2.clicks)  

【问题讨论】:

    标签: python pandas matplotlib plot time-series


    【解决方案1】:

    将clicks列更改为数字,然后:

    ax = dfClicks.plot()
    dfClicks2.plot(ax=ax)
    ax.legend(["Clicks","Clicks2"])
    

    输出:

    更新: 你设置索引的方式有错误,改一下

    dfClicks.set_index('date_of_click')
    

    与:

    dfClicks = dfClicks.set_index('date_of_click')
    

    【讨论】:

    • 谢谢,我将点击次数更改为数字,但是当我运行您的代码时,我收到错误 ValueError: view limit minimum -35995.911458333336 is less than 1 and is a invalid Matplotlib date value。如果您将非日期时间值传递给具有日期时间单位的轴,这通常会发生
    • 我也把年份改成了 2000 年,以防它引起问题
    • 我更新了答案,您可以在其中看到我是如何创建数据框的。你能在这里发布你用来转换为数字的代码吗?给你 ValueError 的代码。谢谢!试试这个:dfClicks.clicks = pd.to_numeric(dfClicks.clicks)
    • 请查看上面的更新代码。我仍然遇到同样的错误。
    • 我发现了您的问题,请查看更新后的答案。现在它应该可以工作了!
    猜你喜欢
    • 2016-02-01
    • 2016-06-24
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    相关资源
    最近更新 更多