【问题标题】:matplotlib scatter plot with full year date-time index具有全年日期时间索引的 matplotlib 散点图
【发布时间】:2020-07-17 22:34:48
【问题描述】:

我有一个熊猫系列,其中包含 2015 年的日期时间索引和值。 并非所有日期都有数据,因此使用 dropna() 来查看获得的数据。 部分数据如下所示,大约有 50 个日期有观测值 整个系列。

  date       value

2015-02-09     8.3
2015-04-17    27.8
2015-05-07    30.6
...
2015-07-27    33.9
2015-07-29    36.1
2015-08-19    32.8
...
2015-12-25    11.1
2015-12-26    11.7

如何根据这些数据创建 matplotlib 散点图, 以 2015 年全年作为 x 轴的范围?

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    Pandas 有自己的绘图方法,它是 matplotlib 函数的包装器:

    import pandas as pd
    
    <name of your series>.plot(xlim=[pd.to_datetime('2015-01-01'), 
                                     pd.to_datetime('2015-12-31')])
    

    这可能会默认绘制一个线图,这是显示时间序列的常规方式。但是您可以使用所有常用的 matplotlib 关键字参数和绘图函数来自定义绘图。


    后续问题: 如何用相同的 x 限制叠加多个图?

    如果您要绘制的两个系列是一个 DataFrame 的两列,您可以使用与上述相同的方法。只需将 DataFrame 替换为 Series。

    如果您要绘制的第二个数据集是其他数据(例如 (x, y)),您可能需要使用更灵活的面向对象的 matplotlib 接口:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots() 
    
    ax.plot(<series>.index, <series>.values)
    ax.plot(x, y)
    
    ax.set_xlim([pd.to_datetime('2015-01-01'), 
                 pd.to_datetime('2015-12-31')])
    

    【讨论】:

    • 这行得通,但我有一个后续问题。我需要将此数据覆盖在具有相同日期范围的另一个图表上,并且我正在努力设置轴参数。你将如何设置轴来代​​表整个 2015 日历年,然后应用这些图表?
    • 我将此添加到我的答案中。
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2015-02-12
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多