Подтвердить что ты не робот

Заполните между x и базовой базой x в Matplotlib

Я ищу способ использовать fill_between в matplotlib для тени между x1 и x2 в противоположность y1 и y2.

У меня есть серия логарифмических графиков с глубиной по оси Y и измеренная переменная на оси x и хотелось бы затенять влево или вправо, в отличие от выше или ниже, на графике.

Я уверен, что это должно быть возможно с помощью fill_between, но не могу заставить его работать.

В качестве примера:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec


gs = gridspec.GridSpec(3, 3)
ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1:, 1])

y=np.random.uniform(0,1,30)
x=np.arange(30)

ax1.set_ylabel('Plot 1')
ax1.plot(x,y)
ax1.fill_between(x,y,0.5,where=y>0.5,interpolate=True)

ax2.set_ylabel('Plot 2')
ax2.plot(y,x)
ax2.set_ylim(30,0)

plt.show()

Я прикрепил образ того, что это производит: По сути, я хочу построить что-то вроде сюжета 1 в сюжете 2 позиции enter image description here

Спасибо за любые предложения

4b9b3361

Ответ 1

вы можете использовать fill_betweenx

ax2.fill_betweenx(y,x, x2=0.5, where=x>0.5,interpolate=True)