мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Это старая версия документа!


Как популярный язык, Питон оброс уже большим количеством библиотек, позволяющих упростить жизнь во многих аспектах. Сегодня и далее мы рассмотрим две из них. Библиотеку для работы с графиками 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

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