НачатьНачать бесплатно

Доработка графика

Вас заинтересовала зависимость между широтой фермерского рынка и количеством месяцев, в течение которых он работает. Интуитивно понятно: чем южнее расположен рынок, тем длиннее вегетационный сезон и тем дольше рынок может оставаться открытым. Чтобы наглядно показать эту закономерность, вы агрегируете данные о рынках на уровне штатов и строите тепловую карту, столбцы которой соответствуют продолжительности работы рынков. Каждая строка тепловой карты отражает распределение «сезона» рынков для одного штата, а строки отсортированы по убыванию широты штата.

heatmap

Тепловая карта с настройками по умолчанию оставляет желать лучшего. Уменьшите размер шрифта, чтобы названия штатов не перекрывали друг друга. Тёмная цветовая палитра плохо сочетается со светлым фоном, а цветовая шкала не помогает читателю, поскольку здесь важны относительные сравнения, а не абсолютные значения.

Это упражнение является частью курса

Улучшение визуализации данных в Python

Посмотреть курс

Инструкции к упражнению

  • Уменьшите размер шрифта до 85% от значения по умолчанию, чтобы названия штатов не накладывались друг на друга.
  • Создайте новую цветовую палитру, переходящую от 'white' к 'steelblue'.
  • Замените палитру по умолчанию на созданную.
  • Удалите непрерывную цветовую шкалу, отображаемую рядом с тепловой картой.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Decrease font size so state names are less crowded
sns.set(____ = ____)

# Switch to an appropriate color palette
blue_pal = sns.light_palette("____", as_cmap = True)

# Order states by latitude
g = sns.heatmap(markets_by_month.reindex(state_by_lat), 
            # Add gaps between cells
            linewidths = 0.1, 
            # Set new palette and remove color bar 
            cmap = ____, cbar = ____,
            yticklabels = True)

# Rotate y-axis ticks 
g.set_yticklabels(g.get_yticklabels(), rotation = 0)
plt.title('Distribution of months open for farmers markets by latitude')
plt.show()
Редактировать и запускать код