【问题标题】:plot python from dataframe从数据框中绘制 python
【发布时间】:2023-03-29 11:25:02
【问题描述】:

我下面的数据框是“IdBox”=4 列中的某个值。它可以帮助我只为“IdBox”=4 绘制数据图。 当 IdBox 值发生变化时,我找不到一种方法来更快地绘制这个函数。我的 IdBox 值范围是 4 到 9,即 6 个图。

chaudiere4 = yy[(yy.NameDeviceType== "Chaudière_logement") & (yy.IdBox == 4.0)]

In [898]: chaudiere4    
Out[898]:
UnitDeviceType  NameDeviceType  IdBox   IdDeviceValue             ValueDeviceValue  weekday hour    ONOFF
DateDeviceValue                             
2015-11-27 17:54:00 On/Off  Chaudière_logement  4.0 536448.0    On  4.0 17.0    1
2015-11-27 17:54:00 On/Off  Chaudière_logement  4.0 536449.0    Off 4.0 17.0    0
2015-11-27 17:54:00 On/Off  Chaudière_logement  4.0 536450.0    On  4.0 17.0    1
2015-11-27 17:54:00 On/Off  Chaudière_logement  4.0 536451.0    Off 4.0 17.0    0
2015-11-27 18:09:00 On/Off  Chaudière_logement  4.0 536453.0    On  4.0 18.0    1

我创建了一个名为 ONOFF 的列,并按平均值分组以进行绘图。

chaudiere4 = chaudiere4['ONOFF'].groupby(chaudiere4['hour']).mean()

chaudiere4.plot(kind='bar')
plt.title("Chaudiere ON/OFF")
plt.xlabel('hour')
plt.legend('ONOFF')
plt.axis([0, 24, 0, 1])
plt.show()

有没有办法通过函数快速完成此操作,而不是将数据帧更改为 chaudiere5(Idbox=5)和 chaudiere6(Idbox=6)?

【问题讨论】:

  • 您想为每个 chaudière 绘制图表吗?
  • 确实,我正在寻找一种快速的方法来代替重复整个代码 6 次
  • @cloclo,that 是你想要的吗?

标签: python pandas dataframe plot group-by


【解决方案1】:

IIUC:

yy[(yy.NameDeviceType== "Chaudière_logement") & (yy.IdBox == 4.0)] \
  .groupby('hour')['ONOFF'].mean() \
  .plot.bar()

你可以为此创建一个小函数:

def my_plot(df, IdBox=0, title='Chaudiere ON/OFF'):
    df[(df.NameDeviceType== "Chaudière_logement") & (df.IdBox == IdBox)] \
      .groupby('hour')['ONOFF'].mean() \
      .plot.bar(title=title)
    plt.axis([0, 24, 0, 1])
    plt.show()

现在你可以这样称呼它:

my_plot(df, 4.0)

【讨论】:

  • 我认为他想要的是将这部分(yy.IdBox == 4.0) 更改为具有值 4、5 和 6 并为每个创建一个图。这可以使用简单的for 循环来实现?
  • 为什么 IDBox 在第一行是 y_plot(df, IdBox=0) 而在第二行是 (df.IdBox == 4.0)]?该图有效,但我每次都需要更改 IdBox。
  • 在这种情况下会是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
  • 1970-01-01
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 2021-11-07
  • 2016-01-07
相关资源
最近更新 更多