Есть ли способ отметить минимальное и максимальное значения линейного графика на оси Y в Matplotlib? - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь сделать сгенерированный мной график немного более полезным при сравнении. Есть ли способ сделать что-то, как я изобразил ниже? Или, возможно, способ нарисовать линию поперек вдоль значения y максимума и минимума?

Я пытался использовать max () и min () и поместить его в график, например:

plt.plot(dat[0]['end_date'], max(dat[0]['pct']))

Что выдает ошибку значения, потому что список x имеет что-то вроде 48 записей, тогда как список y будет иметь только одну.

ValueError: x and y must have same first dimension, but have shapes (48,) and (1,)

Могу ли я использовать эту версию, которая каким-то образом заполняет оставшиеся 47 пробелов тем же максимальным значением?

Спасибо!

Mentioned Above

1 Ответ

2 голосов
/ 23 января 2020

Вы можете использовать plt.axhline():

plt.axhline(max(dat[0]['pct']))
plt.axhline(min(dat[0]['pct']))

Демонстрация с использованием случайных данных:

import matplotlib.pyplot as plt
import numpy as np, pandas as pd

df = pd.DataFrame({'x':[np.random.randint(0,10) for i in range(10)]})
df.plot()
plt.axhline(df.x.max())
plt.axhline(df.x.min())

Результат: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...