Эта серия познакомит вас с построением графиков на python с помощью Matplotlib, который, возможно, является самой популярной библиотекой построения графиков и визуализации данных для Python.
Установка
Самый простой способ установить matplotlib-использовать pip. Введите следующую команду в терминале:
pip install matplotlib
ИЛИ вы можете скачать его с здесь и установите его вручную.
Начало работы ( Построение линии)
# importing the required module
import matplotlib.pyplot as plt
# x axis values
x = [1,2,3]
# corresponding y axis values
y = [2,4,1]
# plotting the points
plt.plot(x, y)
# naming the x axis
plt.xlabel('x - axis')
# naming the y axis
plt.ylabel('y - axis')
# giving a title to my graph
plt.title('My first graph!')
# function to show the plot
plt.show()
Выход:
Код кажется понятным сам по себе. Были предприняты следующие шаги:
- Определите значения оси x и соответствующие значения оси y в виде списков.
- Нанесите их на холст, используя .plot().
- Дайте имя оси x и оси y с помощью .xlabel() и .ylabel().
- Дайте название вашему участку, используя .title().
- Наконец, для просмотра вашего сюжета мы используем .show().
Нанесение двух или более линий на один и тот же участок
import matplotlib.pyplot as plt
# line 1 points
x1 = [1,2,3]
y1 = [2,4,1]
# plotting the line 1 points
plt.plot(x1, y1, label = "line 1")
# line 2 points
x2 = [1,2,3]
y2 = [4,1,3]
# plotting the line 2 points
plt.plot(x2, y2, label = "line 2")
# naming the x axis
plt.xlabel('x - axis')
# naming the y axis
plt.ylabel('y - axis')
# giving a title to my graph
plt.title('Two lines on same graph!')
# show a legend on the plot
plt.legend()
# function to show the plot
plt.show()
Выход:
- Здесь мы строим две линии на одном графике. Мы различаем их, давая им название(label), который передается в качестве аргумента функции .plot ().
- Небольшое прямоугольное поле, дающее информацию о типе линии и ее цвете, называется легендой. Мы можем добавить легенду к нашему сюжету, используя .legend().
Настройка участков
Здесь мы обсудим некоторые элементарные настройки, применимые практически к любому сюжету.
import matplotlib.pyplot as plt
# x axis values
x = [1,2,3,4,5,6]
# corresponding y axis values
y = [2,4,1,5,2,6]
# plotting the points
plt.plot(x, y, color='green', linestyle='dashed', linewidth = 3,
marker='o', markerfacecolor='blue', markersize=12)
# setting x and y axis range
plt.ylim(1,8)
plt.xlim(1,8)
# naming the x axis
plt.xlabel('x - axis')
# naming the y axis
plt.ylabel('y - axis')
# giving a title to my graph
plt.title('Some cool customizations!')
# function to show the plot
plt.show()
Выход:
Как вы можете видеть, мы сделали несколько настроек, таких как
- настройка ширины линии, стиля линии, цвета линии.
- настройка маркера, цвета лица маркера, размера маркера.
- переопределение диапазона осей x и y. Если переопределение не выполнено, модуль pyplot использует функцию автоматического масштабирования для установки диапазона и масштаба осей.
Гистограмма
import matplotlib.pyplot as plt
# x-coordinates of left sides of bars
left = [1, 2, 3, 4, 5]
# heights of bars
height = [10, 24, 36, 40, 5]
# labels for bars
tick_label = ['one', 'two', 'three', 'four', 'five']
# plotting a bar chart
plt.bar(left, height, tick_label = tick_label,
width = 0.8, color = ['red', 'green'])
# naming the x-axis
plt.xlabel('x - axis')
# naming the y-axis
plt.ylabel('y - axis')
# plot title
plt.title('My bar chart!')
# function to show the plot
plt.show()
Выход:
- Здесь мы используем plt.bar() функция построения гистограммы.
- x-координаты левой стороны столбиков передаются вместе с высотами столбиков.
- вы также можете дать некоторые имена координатам оси x, определив метки-галочки
Гистограмма
import matplotlib.pyplot as plt
# frequencies
ages = [2,5,70,40,30,45,50,45,43,40,44,
60,7,13,57,18,90,77,32,21,20,40]
# setting the ranges and no. of intervals
range = (0, 100)
bins = 10
# plotting a histogram
plt.hist(ages, bins, range, color = 'green',
histtype = 'bar', rwidth = 0.8)
# x-axis label
plt.xlabel('age')
# frequency label
plt.ylabel('No. of people')
# plot title
plt.title('My histogram')
# function to show the plot
plt.show()
Выход:
- Здесь мы используем функцию plt.hist() для построения гистограммы.
- частоты передаются в виде списка.
- Диапазон может быть задан путем определения кортежа, содержащего минимальные и максимальные значения.
- Следующий шаг состоит в том, чтобы “bin” диапазон значений, то есть разделите весь диапазон значений на ряд интервалов, а затем подсчитайте, сколько значений попадает в каждый интервал. Здесь мы определили bins
Точечная диаграмма
import matplotlib.pyplot as plt
# x-axis values
x = [1,2,3,4,5,6,7,8,9,10]
# y-axis values
y = [2,4,5,7,6,8,9,11,12,12]
# plotting points as a scatter plot
plt.scatter(x, y, label= "stars", color= "green",
marker= "*", s=30)
# x-axis label
plt.xlabel('x - axis')
# frequency label
plt.ylabel('y - axis')
# plot title
plt.title('My scatter plot!')
# showing legend
plt.legend()
# function to show the plot
plt.show()
Выход:
- Здесь мы используем plt.scatter() функция построения точечной диаграммы.
- В виде линии мы также определяем значения x и соответствующие значения оси y здесь.
- Его размер можно определить с помощью s.
Круговая диаграмма
import matplotlib.pyplot as plt
# defining labels
activities = ['eat', 'sleep', 'work', 'play']
# portion covered by each label
slices = [3, 7, 8, 6]
# color for each label
colors = ['r', 'y', 'g', 'b']
# plotting the pie chart
plt.pie(slices, labels = activities, colors=colors,
startangle=90, shadow = True, explode = (0, 0, 0.1, 0),
radius = 1.2, autopct = '%1.1f%%')
# plotting legend
plt.legend()
# showing the plot
plt.show()
Вывод вышеприведенной программы выглядит следующим образом:
- Здесь мы построим круговую диаграмму с помощью метода plt.pie ().
- Прежде всего, мы определяем labels, используя список под названием activities.
- Затем часть каждой метки может быть определена с помощью другого списка, называемого slices.
- Цвет для каждой метки определяется с помощью списка, называемого colors.
- shadow = True покажет тень под каждой меткой на круговой диаграмме.
- startangle поворачивает начало круговой диаграммы на заданные градусы против часовой стрелки от оси x.
- explode используется для задания доли радиуса, с которой мы смещаем каждый клин.
- autopct используется для форматирования значения каждой метки. Здесь мы настроили его так, чтобы он отображал процентное значение только с точностью до 1 знака после запятой.
Построение кривых данного уравнения
# importing the required modules
import matplotlib.pyplot as plt
import numpy as np
# setting the x - coordinates
x = np.arange(0, 2*(np.pi), 0.1)
# setting the corresponding y - coordinates
y = np.sin(x)
# plotting the points
plt.plot(x, y)
# function to show the plot
plt.show()
Вывод:
из приведенной выше программы выглядит так:
Здесь мы используем NumPy, который является пакетом обработки массивов общего назначения на python.
- Чтобы задать значения по оси x, мы используемметод np.arange (), в котором первые два аргумента относятся к диапазону, а третий-к пошаговому приращению. В результате получается массив NumPy.
- Чтобы получить соответствующие значения по оси y, мы просто используем предопределенный метод np.sin() для массива NumPy.
- Наконец, мы строим точки, передавая массивы x и y функции plt.plot ().
Итак, в этой части мы обсудили различные типы участков, которые мы можем создать в matplotlib. Есть еще несколько сюжетов, которые не были освещены, но самые важные из них обсуждаются здесь: