我有5個時間系列,我想在一個子圖中形成圖形。基本上我一直在使用subplotting:在熊貓中組合條形和線形子圖
fig, axes = plt.subplots(nrows=5, ncols=1, figsize=(16,10), sharex=True)
xlim = (start, end)
ax1=df.hr.plot(ax=axes[0], color='green', xlim=xlim)
ax2=df.act.plot(ax=axes[1], color='orange', xlim=xlim)
ax3=df.rr.plot(ax=axes[2], color='blue', xlim=xlim)
ax4=df2.set_index('timestamp').rmssd.plot(color='purple', ax=axes[3], xlim=xlim)
ax5=ma_df.tz_convert('US/Eastern')['any_act'].resample('10Min', how='count').plot(kind='line',ax=axes[4])
將會產生
由於數據的性質,我想以可視化的最後插曲爲條形圖。所以很自然,我改變了最後一行:
ax5=ma_df.tz_convert('US/Eastern')['any_act'].resample('10Min', how='count').plot(kind='bar',ax=axes[4])
,然後創建如下圖所示:
其中,生產什麼我希望在最後的插曲,但讓其他地塊沒用。不用說,這不是我想要的。
如何將4行時間序列與同一圖中的一個條形圖組合在一起,但不同的子圖都共享相同的x軸? 含義我想要像第一幅圖像中的前4個子圖,以及第二幅圖中的最後一個子圖。
更新
我做了一個簡單的例子,不幸的是正常工作,並且不復制我的問題,這更是莫名其妙。代碼如下
import pandas as pd
from matplotlib import pyplot as plt
%matplotlib inline
df = pd.read_csv('https://s3.amazonaws.com/temp-leonsas-qsaeamu0sl5v4b/df.csv')
bar_df = pd.read_csv('https://s3.amazonaws.com/temp-leonsas-qsaeamu0sl5v4b/bar_df.csv')
fig, axes = plt.subplots(nrows=4, ncols=1, figsize=(16,10), sharex=True)
ax1=df.hr.plot(ax=axes[0], color='green', kind='line')
ax2=df.act.plot(ax=axes[1], color='orange', kind='line')
ax3=df.rr.plot(ax=axes[2], color='blue', kind='line')
ax4=bar_df.occ_count.plot(ax=axes[3], kind='bar')
而在我的代碼庫它複製問題的代碼是
fig, axes = plt.subplots(nrows=4, ncols=1, figsize=(16,10), sharex=True)
ax1=df.hr.plot(ax=axes[0], color='green', kind='line')
ax2=df.act.plot(ax=axes[1], color='orange', kind='line')
ax3=df.rr.plot(ax=axes[2], color='blue', kind='line')
ax4=bar_df.occ_count.plot(ax=axes[3], kind='bar')
的主要區別是,在我的代碼庫正在生成的DataFrames而不是僅僅從S3裝起來。 DataFrame中是否存在隱式配置,可以以某種方式實現此目的?我只是使用df.to_csv
將這2個數據幀轉儲到S3中。
您是否嘗試過先調用barplot和線圖之後?您可能從重新採樣中獲得不需要的幫助活動,但這不是一個完整的示例。至少提供虛擬數據並查看需要多少線條圖來重現錯誤。 [MVCE] – cphlewis
@cphlewis在帖子中看到我的更新。 – leonsas
它可能是指標略有不同,請在繪製 – maxymoo