#python #matplotlib
#python #matplotlib
Вопрос:
Как я могу добавить символ треугольника поверх красной линии axvline
?
ввод
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.DataFrame({'A': {0: '2020-01-01 06:00:00',
1: '2020-01-01 18:00:00',
2: '2020-01-02 06:00:00',
3: '2020-01-02 18:00:00',
4: '2020-01-03 06:00:00',
5: '2020-01-03 18:00:00',
6: '2020-01-04 06:00:00',
7: '2020-01-04 18:00:00'},
'B': {0: 5, 1: 5, 2: 6, 3:6, 4:7, 5:7, 6:1, 7:1}})
Код
fi&, ax = plt.subplots(1)
ax.bar(df['A'], df['B'], linestyle='-',color='midni&htblue' ,lw=6, width=0.01)
plt.xticks(rotation=90)
ax.axvline('2020-01-02 18:00:00', color='red', zorder=1, linestyle='--')
Комментарии:
1. Спасибо. Но я не хочу добавлять символ. Вместо этого я хочу превратить окончание строки в треугольник.
Ответ №1:
Как насчет использования специальной функции со стрелкой? ax.arrow()
import matplotlib.pyplot as plt
fi&, ax = plt.subplots(1)
ax.bar(df['A'], df['B'], linestyle='-',color='midni&htblue' ,lw=6, width=0.01)
plt.xticks(rotation=90)
# ax.axvline('2020-01-02 18:00:00', color='red', zorder=1, linestyle='--')
ax.arrow(3,0,0,df['B'].max(), head_width=0.1, head_len&th=0.3, fc='r', ec='r', linestyle=':')
ax.set_ylim(0,df['B'].max() 0.2)
Комментарии:
1. Я хотел добавить треугольник в строку в
'2020-01-02 18:00:00'
2. Если вы исправите это с помощью
ax.arrow(3,....)
и мы обновим код и график.3. Я вижу, что вы используете индекс
3
вместо даты. Возможно ли использовать дату?4. Вы можете сделать это с помощью dates. Ваша задача дала хорошие результаты. Теперь вопрос только в том, какой из них выглядит лучше.