Menu
CoddyTech

Столбчатые диаграммы

Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 26 из 60.

В этой главе мы превратим данные в сводки. К концу главы ты создашь отчёт с двумя диаграммами, как этот:

Две диаграммы рядом: столбчатая диаграмма среднего количества осадков для каждого дня недели, больше всего осадков в четверг, и гистограмма ежедневного количества осадков, где в большинство дней их почти нет

Начнём со столбцов. У вкусов нет порядка, поэтому линия от одного к другому ничего не значит. ax.bar(categories, values) рисует по одному столбцу для каждой категории:

flavors = ["Chocolate", "Vanilla", "Mint", "Mango"]
sold = [42, 27, 15, 21]
fig, ax = plt.subplots()
ax.bar(flavors, sold)
ax.set_title("Scoops Sold")
ax.set_ylabel("Scoops")
plt.show()

Столбчатая диаграмма «Проданные порции» с четырьмя столбцами: шоколад — 42, ваниль — 27, мята — 15, манго — 21

Столбцы начинаются с 0, поэтому высоту можно сравнивать напрямую: 42 у шоколада — вдвое больше, чем 21 у манго. Перед обучением модели столбцы, показывающие, как часто встречается каждый ответ, позволяют увидеть, преобладает ли какой-либо из них.

challenge icon

Задание

Средне

48 учеников рассказали, как они добираются до школы. В counts хранятся ответы по кодам: 1 — пешком, 2 — на велосипеде, 3 — на автобусе, 4 — на машине. Чтобы сравнивать школы, построй диаграмму долей:

  1. Преобразуй количества в проценты, округлив до 1 знака после запятой (12 из 48 — это 25.0).
  2. Изобрази их столбцами: Walk, Bike, Bus, Car.
  3. Подпиши вертикальную ось Students (%).

Твоя диаграмма должна выглядеть примерно так — для школы поменьше:

Столбчатая диаграмма с заголовком «Как добираются до школы» и четырьмя столбцами в процентах: пешком — 26.7, на велосипеде — 13.3, на автобусе — 40, на машине — 20

Твоя программа ничего не выводит. Coddy описывает твои столбцы в выводе.

Попробуйте сами

import numpy as np
import matplotlib.pyplot as plt

# 1 = пешком, 2 = на велосипеде, 3 = на автобусе, 4 = на машине
answers = np.array([1, 3, 1, 4, 3, 3, 4, 3, 4, 4, 3, 4, 4, 4, 3, 3,
                    2, 2, 2, 1, 1, 3, 1, 1, 1, 2, 3, 3, 1, 3, 2, 1,
                    3, 4, 3, 3, 1, 1, 1, 2, 3, 1, 3, 4, 4, 3, 2, 4])


# Возвращает массив: сколько значений соответствует каждому коду от 1 до 4
def count_codes(values):
    counts = []
    for code in range(1, 5):
        counts.append((values == code).sum())
    return np.array(counts)


counts = count_codes(answers)
fig, ax = plt.subplots()
ax.set_title("Getting to School")

# Напишите свой код ниже

# Не изменяйте строку ниже
plt.show()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Данные и графики

Потренируйтесь самостоятельно: Онлайн-компилятор Python