我想使用matplotlib绘制两个子图并在它们中都添加一条水平线。这可能是基础操作,但我不知道如何指定其中一条线应该画在第一个图上,它们最后都出现在了最后一个图中。例如:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
s1= pd.Series(np.random.rand(10))
s2= pd.Series(np.random.rand(10))
fig, axes = plt.subplots(nrows=2,ncols=1)
f1= s1.plot(ax=axes[0])
l1=plt.axhline(0.5,color='black',ls='--')
l1.set_label('l1')
f2= s1.plot(ax=axes[1])
l2=plt.axhline(0.7,color='red',ls='--')
l2.set_label('l2')
plt.legend()
axhline函数没有像pandas plot函数一样将“ax”作为参数,所以可以这样写:
l1=plt.axhline(0.5,color='black',ls='--',ax=axes[0])
我阅读了matplotlib中的示例,并尝试了另一个选项,但这个选项也不起作用(很可能有充分的理由)
axes[0].plt.axhline(0.5,color='black',ls='--')
我该如何在子图中绘制线条?最好还能带上图例。谢谢!
axes[0].axhline(0.5,color='black',ls='--')
吗?这应该可以解决问题。 - Nick Becker