plt.fill_betweenでgreenの部分しか表示されません。どうすれば意図したグラフが得られるでしょうか? (-が入っているから認識されない?)
知っている方はぜひ教えていただけると助かります。

import matplotlib.pyplot as plt
import numpy as np

f1 = np.loadtxt(filepath1)
f2 = np.loadtxt(filepath2)

x1, z1 = f1[:, 0], f1[:, 1]
x2, z2 = f2[:, 0], f2[:, 1]

##
plt.xlabel('X') # x軸のラベル
plt.ylabel('Z') # y軸のラベル
plt.plot(x1, z1, color="Black", alpha=0.8, linewidth=4.0, label="data1")
plt.plot(x2, z2, color="White", alpha=0.8, linewidth=4.0, label="data2")
plt.legend()
plt.fill_between(x1, z1, z2, where=z2>=z1, facecolor='green', interpolate=True)
plt.fill_between(x1, z1, z2, where=z2<=z1, facecolor='red',   interpolate=True)

# その他,描画用オプション
plt.xticks(fontsize=10)
plt.yticks(fontsize=10) 
plt.ylim([-21.62, -21.46])
plt.grid(True) #グラフの枠を作成
plt.savefig("cm.png")
plt.show()
fig = plt.figure()

画像の説明をここに入力

txtの中身は (x, z) の二次元配列です。

真のデータ

16.8180 -21.4740
17.0484 -21.6070
17.2787 -21.4740
17.4480 -21.4740
17.6784 -21.6070
17.9087 -21.4740
18.0780 -21.4740
18.3084 -21.6070
18.5387 -21.4740
18.7080 -21.4740
18.9384 -21.6070
19.1687 -21.4740
19.3380 -21.4740
19.5684 -21.6070
19.7987 -21.4740

一部回転B

16.8180 -21.4740
17.0484 -21.5070
17.2787 -21.4740
17.4480 -21.4740
17.6784 -21.6570
17.9087 -21.4740
18.0780 -21.4740
18.3084 -21.6070
18.5387 -21.4740
18.7080 -21.4740
18.9384 -21.6070
19.1687 -21.4740
19.3380 -21.4740
19.5684 -21.6070
19.7987 -21.4740

プログラムを訂正したところ次のようなエラーが表示されました。

Traceback (most recent call last):

  File "<ipython-input-24-32532a3f4e19>", line 1, in <module>
    runfile('C:/Users/Administartor/Desktop/いいべ.py', wdir='C:/Users/Administartor/Desktop')

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Administartor/Desktop/いいべ.py", line 46, in <module>
    plt.fill_between(x1, z1, z2, where=z2>=z1, facecolor='green', interpolate=True)

ValueError: operands could not be broadcast together with shapes (3031,) (15,)