我正在尝试使用seaborn对以下数据进行时间序列绘图:
infant shannon DOL subject
0 N1_003 0.262301 11.0 0
1 N1_003 0.715419 13.0 0
1161 S2_018 1.085983 22.0 0
1162 S2_018 1.126659 23.0 0
但由于某种原因,婴儿S2_018的线路只显示使用以下代码?
def plot_ts(db):
db=db[['infant', 'shannon', 'DOL']]
db=db.drop_duplicates()
db=db.dropna()
db['subject'] = 0
sns.tsplot(time='DOL', # Horizontal axis
value='shannon', # Vertical axis
data=db, # Data source
unit='subject',
condition="infant",
interpolate=True,
legend=True)
答案 0 :(得分:0)
x轴上的绘图范围从22到23,然而N1_003
的数据是11和13.所以你只需要获得正确的绘图限制。为此,只需添加
plt.autoscale()
在你的功能结束时。
但请注意,tsplot
并不是绘制问题中数据框等简单事物的首选。此外,从seaborn的版本0.8开始,tsplot
is deprecated。
请参阅here了解它何时有用。
这里只考虑一个正常的熊猫图,
for n, infant in db.groupby("infant"):
infant.plot(x="DOL", y="shannon", ax=plt.gca(), label=n);