Ваше изображение выглядит как функция, которая расположена горизонтально вокруг каждого значения x, y. Следующий код имитирует это:
- для каждого x, y: создайте две новые точки, одну в x-0.5 и одну в x + 0.5, обе с одинаковым y
- для закрытияформу на концах, добавить (x [0] -0,5, 0) в начале и (x [-1] +0,5, 0) в конце.
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(0, 30, 1)
y = np.random.uniform(2, 10, 30)
xs = [x[0] - 0.5]
ys = [0]
for i in range(len(x)):
xs.append(x[i] - 0.5)
xs.append(x[i] + 0.5)
ys.append(y[i])
ys.append(y[i])
xs.append(x[-1] + 0.5)
ys.append(0)
plt.plot(xs, ys, color='dodgerblue')
# optionally color the area below the curve
plt.fill_between(xs, 0, ys, color='gold')
PS:@AsishM. в комментариях упоминается, что у matplotlib также есть своя пошаговая функция. Если эта функция выполняет, пожалуйста, используйте эту. Если вам нужен дополнительный контроль или вариация, этот ответ может дать начало, например, закрасить область под кривой или обработать фигуру на концах.
![example plot](https://i.stack.imgur.com/4AjnM.png)