python – ¿Cómo puedo colorear sólo las áreas que se encuentran entre el limite y la curva?

Estoy haciendo un código en el que quiero colorear unicamente las partes que estan entre la curva y el límite y=0.5 pero en vez de eso, me colorea hasta donde no hay curva. ¿Como lo puedo arreglar? Anexo e imagen (!(introducir la descripción de la imagen aquí)(1))(1)código.

plt.subplot(1, 5, 4)
plt.plot(vsh, depth)
plt.axis((0, 1, base_display, top_display))
plt.axhline(y=0.5, ls=":", color='black',label = 'Limite de Vsh')
plt.fill_between(vsh, depth, y, where=(vsh >= y), facecolor='gray', interpolate=True, 
label="lutita")
plt.fill_between(vsh, depth, y, where=(vsh <= y), facecolor='bisque', interpolate=True, 
label="arena")
plt.title('Vsh')
plt.show()