Как популярный язык, Питон оброс уже большим количеством библиотек, позволяющих упростить жизнь во многих аспектах. Сегодня и далее мы рассмотрим две из них. Библиотеку для работы с графиками matplotlib и библиотеку для работы с табличными данными pandas.

Диаграммы в matplotlib

Библиотека matplotlib умеет делать много всяких штук с графиками, но мы рассмотрим только простые графики. В следующем примере, нарисуем график

import matplotlib.pyplot as plt # подключем модуль pyplo x_axis = range(1, 20) # создадим список данных для оси X y_axis = [i * i for i in range(1, 20)] # и для оси Y, здесь использован генератор для создания списка plt.plot(x_axis, y_axis) # рисуем картинку. Метод plot принимает здесь два аргумента, список значений для осей X и Y plt.show() # покажем получившуюся диаграмму на экран

Нарисуем еще, например, график синуса. Здесь мы слегка заденем по поверхности одной из самых мощных питоновых библиотек - numpy, используем ее методы для создания списка значений.

import matplotlib.pyplot as plt import numpy as np # подключим модуль numpy x_axis = np.arange(0.0, 1.0, 0.01) # создадим список чисел от 0 до 1 с шагом 0.1. Принцип, идентичный уже известному нам range, но более оптимален по скорости работы для большого количества данных y_axis = np.sin(2*np.pi*x_axis) # аналогично для оси Y, обратите внимание, как в этой библиотеке упрощено обход значений других списков. Мы передаем значение списка x_axis просто как аргумент функции, а библиотека уже понимает, что если передали список, то на выходе тоже хотим список. line, = plt.plot(x_axis, y_axis, color='red', lw=2) # здесь мы добавили новую особенность, цвет и ширину линии диаграммы plt.show()

В качестве подписи для оси Х могут выступать не только числа, но и символы. А диаграмма не только линия, но и гистограмма:

import matplotlib.pyplot as plt import numpy as np planets = ['Меркурий', 'Венера', 'Земля', 'Марс', 'Юпитер', 'Сатурн', 'Уран', 'Нептун'] x_axis = np.arange(len(planets)) y_axis = [4879.4, 12103.6, 12742.0, 6780.0, 139822, 116464, 50724, 49244] # диаметры планет plt.xticks(x_axis, planets, rotation=45) # здесь мы и говорим, что вместо чисел нам нужны названия из списка планет, да еще повернутые на 45 гр дусов plt.bar(x_axis, y_axis, align='center', alpha=0.5) # вместо функции plot мы используем функцию bar plt.show()

Задание 13

Прочитать файл с данными измерений космического телескопа Хаббл и нарисовать диаграмму зависимости скорости убегания от объекта измерения.

Задание 14

Используя информацию о городах и странах из предыдущих заданий, нарисовать гистограмму количества городов в странах, для первых 10 стран с наибольшим количеством городов