Аннотации со стрелками
Представьте, что вы городской планировщик в Лонг-Бич, Калифорния. Лонг-Бич расположен на берегу Тихого океана и каждый год в канун Нового года устраивает масштабное фейерверк-шоу. Вы хотите выяснить, не влияет ли это шоу негативно на качество воздуха в городе. Для этого вы рассмотрите уровни CO и NO2 в первый день Нового года. Оказывается, что Новый год не является выбросом на графике справа — соответствующая точка находится в одной из более плотных областей.
Чтобы помочь читателю найти эту точку, вы добавите аннотацию со стрелкой, указывающей на значение для Нового года. Это позволит разместить поясняющий текст в менее загруженной части графика и чётко обозначить, что именно видит читатель.
Это упражнение является частью курса
Улучшение визуализации данных в Python
Инструкции к упражнению
- Получите строку из
jan_pollution, соответствующую 1 января 2012 года в городе Лонг-Бич, используя метод.query()библиотеки pandas. - Задайте конечную точку стрелки (
xy), используя значения столбцовCOиNO2из DataFramelb_newyears. - С помощью аргумента
xytextразместите текст аннотации в левом нижнем углу графика: x =2, y =15. - Установите параметр
'shrink'для стрелки равным0.03, чтобы она не перекрывала точку интереса.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Query and filter to New Years in Long Beach
jan_pollution = pollution.query("(month == 1) & (year == 2012)")
lb_newyears = jan_pollution.query("(____ == ____) & (____ == '____')")
sns.scatterplot(x = 'CO', y = 'NO2',
data = jan_pollution)
# Point arrow to lb_newyears & place text in lower left
plt.annotate('Long Beach New Years',
xy = (____, ____),
xytext = (____, _____),
# Shrink the arrow to avoid occlusion
arrowprops = {'facecolor':'gray', 'width': 3, '____': ____},
backgroundcolor = 'white')
plt.show()