Как заполнить области между строками в Matplotlib


Вы можете легко заполнить область между значениями на графике Matplotlib, используя следующие функции:

  • fill_between() : заполнить область между двумя горизонтальными кривыми.
  • fill_betweenx() : заполнить область между двумя вертикальными кривыми.

В этом руководстве приведены примеры использования каждой из этих функций на практике.

Пример 1. Заполнение области между двумя горизонтальными линиями

Следующий код показывает, как заполнить область между двумя горизонтальными линиями:

import matplotlib.pyplot as plt
import numpy as np

#define x and y values
x = np.arange (0,10,0.1)
y = np.arange (10,20,0.1)

#create plot of values
plt.plot (x,y)

#fill in area between the two lines
plt.fill_between (x, y, color='red')

Обратите внимание, что мы также можем использовать функцию plt.grid() , чтобы добавить линии сетки на график, чтобы легче видеть заполняемые значения:

import matplotlib.pyplot as plt
import numpy as np

#define x and y values
x = np.arange (0,10,0.1)
y = np.arange (10,20,0.1)

#create plot of values
plt.plot (x,y)

#fill in area between the two lines
plt.fill_between (x, y, color='red', alpha= .5 )

#add gridlines
plt.grid () 

Пример 2. Заполнение области под кривой

Следующий код показывает, как заполнить область под кривой:

import matplotlib.pyplot as plt
import numpy as np

#define x and y values
x = np.arange (0,10,0.1)
y = x\*\*4

#create plot of values
plt.plot (x,y)

#fill in area between the two lines
plt.fill_between (x, y, color='red', alpha= .5 ) 

Пример 3. Заполнение области над кривой

Следующий код показывает, как заполнить область над кривой:

import matplotlib.pyplot as plt
import numpy as np

#define x and y values
x = np.arange (0,10,0.1)
y = x\*\*4

#create plot of values
plt.plot (x,y)

#fill in area between the two lines
plt.fill_between (x, y, np.max (y), color='red', alpha= .5 ) 

Пример 4. Заполнение области между двумя вертикальными линиями

В следующем коде показано, как использовать функцию fill_betweenx() для заполнения области между двумя вертикальными линиями:

import matplotlib.pyplot as plt
import numpy as np

#define x and y values
x = np.arange (0,10,0.1)
y = np.arange (10,20,0.1)

#create plot of values
plt.plot (x,y)

#fill in area between the two lines
plt.fill_betweenx (y, 2, 4, color='red', alpha= .5 ) 

Связанный: Как построить гладкую кривую в Matplotlib