【问题标题】:Pandas X_axis hourly [duplicate]Pandas X_axis 每小时 [重复]
【发布时间】:2018-08-03 11:57:44
【问题描述】:

我有这个小熊猫代码:

graph = auswahl[['Volumenstrom_Außen', 'Vpunkt_Gesamt','Zuluft_Druck_10','Abluft_Druck_10']]
a = graph.plot(figsize=[50,10])
a.set(ylabel="m³/h", xlabel="Zeit", title="Volumenströme")#,ylim=[0,100])
a.legend(loc="upper left")
plt.show()

如何设置 X 轴每小时显示一次?

数据框如下所示:

    Volumenstrom_Außen  Vpunkt_Gesamt   Zuluft_Druck    Abluft_Druck
Zeit                
2018-02-15 16:49:00     1021.708443     752.699     49.328  46.811
2018-02-15 16:49:15     1021.708443     752.699     49.328  46.811
2018-02-15 16:49:30     1021.708443     752.699     49.328  46.811
2018-02-15 16:49:45     1021.708443     752.699     49.328  46.811
2018-02-15 16:50:00     1021.708443     752.699     49.328  46.811
2018-02-15 16:50:15     1021.708443     752.699     49.328  46.811
2018-02-15 16:50:30     1021.708443     752.699     49.328  46.811
2018-02-15 16:50:45     1021.708443     752.699     49.328  46.811
2018-02-15 16:51:00     1092.171094     752.699     49.328  46.811
2018-02-15 16:51:15     1092.171094     752.699     49.328  46.811

【问题讨论】:

  • 缺少一些代码?您如何在列表列表中调用 plot 。什么是奥斯瓦尔
  • auswahl 是一个DataFrame,看起来像这样:

标签: pandas matplotlib


【解决方案1】:

让我们以这个示例数据帧为例,它的索引是细粒度的

import pandas as pd
import random
ts_index = pd.date_range('1/1/2000', periods=1000, freq='T')
v1 = [random.random() for i in range(1000)]
v2 = [random.random() for i in range(1000)]
v3 = [random.random() for i in range(1000)]
ts_df = pd.DataFrame({'v1':v1,'v2':v2,'v3':v3},index=ts_index)
ts_df.head()



                         v1           v2        v3
2000-01-01 00:00:00     0.593039    0.017351    0.742111
2000-01-01 00:01:00     0.563233    0.837362    0.869767
2000-01-01 00:02:00     0.453925    0.962600    0.690868
2000-01-01 00:03:00     0.757895    0.123610    0.622777
2000-01-01 00:04:00     0.759841    0.906674    0.263902

我们可以使用pandas.DataFrame.resample 将此数据下采样到每小时粒度,如下所示

hourly_mean_df = ts_df.resample('H').mean() # you can use .sum() also
hourly_mean_df.head()

                          v1          v2         v3
2000-01-01 00:00:00     0.516001    0.461119    0.467895
2000-01-01 01:00:00     0.530603    0.458208    0.550892
2000-01-01 02:00:00     0.472090    0.522278    0.508345
2000-01-01 03:00:00     0.515713    0.486906    0.541538
2000-01-01 04:00:00     0.514543    0.478097    0.489217

现在您可以绘制这个每小时摘要

hourly_mean_df.plot()

【讨论】:

  • 我不想重新采样数据。只需在 x 轴下每小时显示一次。 df 超过一周,plot() 只显示一天,而不是小时。
  • 你应该说清楚,然后你想要的问题是什么
  • 你只想设置每小时的刻度吗?
  • 是的,每小时打勾:-)
  • 看起来像这个问题的副本。 stackoverflow.com/questions/12945971/…
猜你喜欢
  • 2016-04-21
  • 2023-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
相关资源
最近更新 更多