現在、fill_betweenのなかでwhereを使おうと思ったのですがx座標もデータ数も違うので、できませんでした。
(x1, z1)=15点
(x2, z2)=3031点
以下がプログラムです。

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()

これで以下のような図が表示されます。
画像の説明をここに入力

Traceback (most recent call last):

  File "<ipython-input-2-883f16ec992c>", line 1, in <module>
    runfile('C:/Users/Administartor/Desktop/タイトル無し0.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/タイトル無し0.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,) 

私の考えとしてはf1はただ単に点と点を繋いでいるだけなので、f2に合わせた座標が取得できればすべて解決すると思うのですが、描いたグラフから座標を抽出する方法がわからず質問することにしました。
・描いたグラフから座標(x1=x2)の(x1,z1)を抽出する方法
こういったことは可能でしょうか?

@kunifさんのコード

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

xw, zw = f1[:, 0], f1[:, 1] # x1, z1 を作業用配列に変える
x2, z2 = f2[:, 0], f2[:, 1]
z1 = np.array([])           # 空の z1 を作成しておく
for x in x2:
    idx = np.where(xw == x) # 同じ X軸 値を探して
    z1 = np.append(z1, zw[idx[0]]) # z1 に追加
##
plt.xlabel('X') # x軸のラベル
plt.ylabel('Z') # y軸のラベル
plt.plot(x2, 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(x2, z1, z2, where=z2>=z1, facecolor='green', interpolate=True)
plt.fill_between(x2, 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()

エラー

Traceback (most recent call last):

  File "<ipython-input-19-340b5a582673>", line 1, in <module>
    runfile('C:/Users/Administartor/Desktop/t.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/t.py", line 45, in <module>
    plt.plot(x2, z1, color="Black", alpha=0.8, linewidth=4.0, label="data1")

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 3261, in plot
    ret = ax.plot(*args, **kwargs)

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1717, in inner
    return func(ax, *args, **kwargs)

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 1372, in plot
    for line in self._get_lines(*args, **kwargs):

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 404, in _grab_next_args
    for seg in self._plot_args(this, kwargs):

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 384, in _plot_args
    x, y = self._xy_from_xy(x, y)

  File "C:\Users\Administartor\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 243, in _xy_from_xy
    "have shapes {} and {}".format(x.shape, y.shape))

ValueError: x and y must have same first dimension, but have shapes (4,) and (2,)