Matplotlib - 跨越子图的axvlines

时间:2018-05-09 04:01:21

标签: python pandas matplotlib

如何在子图中绘制垂直喜欢。无论我尝试axvlines只显示在底部子图中:

import pandas as pd
import matplotlib.pyplot as plt

fig, zx = plt.subplots(5,1, gridspec_kw={'height_ratios':[1,1,1,1,1]})
fig.subplots_adjust(hspace=0.01)

pd.DataFrame({'A':[1,2,3,4,5]}).plot( grid = True, ax=zx[2])

for x_val in [2.25,3.25,4.25]:
    plt.axvline(x_val, color = 'green')

pd.DataFrame({'B':[6,5,4,3,2]}).plot( grid = True, ax=zx[3])

for x_val in [2.25,3.25,4.25]:
    plt.axvline(x_val, color = 'red')

plt.show()

1 个答案:

答案 0 :(得分:1)

你可以使用这样的轴,zx画线:

import pandas as pd
import matplotlib.pyplot as plt

fig, zx = plt.subplots(5,1, gridspec_kw={'height_ratios':[1,1,1,1,1]})
fig.subplots_adjust(hspace=0.01)

pd.DataFrame({'A':[1,2,3,4,5]}).plot( grid = True, ax=zx[2])

for x_val in [2.25,3.25,4.25]:
    zx[2].axvline(x_val, color = 'green')

pd.DataFrame({'B':[6,5,4,3,2]}).plot( grid = True, ax=zx[3])

for x_val in [2.25,3.25,4.25]:
    zx[3].axvline(x_val, color = 'red')

plt.show()

enter image description here