【问题标题】:Subplot with Time Series Data具有时间序列数据的子图
【发布时间】:2021-02-10 12:22:38
【问题描述】:

早上好!我正在尝试创建两个子图(1 行和 2 列)。但是我遇到了一些问题。

import matplotlib.pyplot as plt
import seaborn as sns

fig = plt.figure(figsize=(25,10))
ax1 = fig.add
data.Loc2.resample('W').mean().rolling(window=3).mean().plot()
plt.title("Mean weekly windspeed at Loc2")


data.Loc2.resample('M').mean().rolling(window=4).mean().plot()
plt.title("Mean monthly windspeed at Loc2")

以上是我所拥有的,但它正在创建一个单图,其中两条线沿 x 轴带有“日期”。尝试使用 fig.add_subplot() 或 plt.subplot() 后,数据框的“日期”列出现错误。

import matplotlib.pyplot as plt
import seaborn as sns

fig = plt.figure(figsize=(25,10))
axOne = plt.subplot(1,2,1)
y = data.Loc2.resample('W').mean().rolling(window=3).mean()
x = data.Date
data.plot(ax = axOne, x = x, y = y, fontsize = 20, c = "blue")
plt.title("Mean weekly windspeed at Loc2")


data.Loc2.resample('M').mean().rolling(window=4).mean().plot()
plt.title("Mean monthly windspeed at Loc2")

这是我在尝试任何方法创建子图时遇到的错误。

AttributeError: 'DataFrame' 对象没有属性 'Date'

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    我建议使用 matplotlib 的面向对象的 API。这就是我会做的:

    fig, axes = plt.subplots(ncols=2, figsize=(25,10))
    data.Loc2.resample('W').mean().rolling(window=3).mean().plot(ax=axes[0])
    axes[0].set_title("Mean weekly windspeed at Loc2")
    
    data.Loc2.resample('M').mean().rolling(window=4).mean().plot(ax=axes[1])
    axes[1].set_title("Mean monthly windspeed at Loc2")
    

    【讨论】:

    • 太棒了。我无法弄清楚调用对象的正确方法。 :D
    猜你喜欢
    • 2020-07-02
    • 2020-02-19
    • 2021-05-20
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2016-09-07
    相关资源
    最近更新 更多