Начало работы с matplotlib

замечания

обзор

matplotlib - это графическая библиотека для Python. Он предоставляет объектно-ориентированные API для встраивания графиков в приложения. Он похож на MATLAB в качестве и синтаксисе.

Он был первоначально написан JDHunter и активно развивается. Он распространяется под лицензией BSD-Style.

Версии

Версия Поддерживаемые версии Python замечания Дата выхода
1.3.1 2,6, 2,7, 3,8 Старая стабильная версия 2013-10-10
1.4.3 2,6, 2,7, 3,8 Предыдущая стабильная версия 2015-07-14
1.5.3 2.7, 3.x Текущая стабильная версия 2016-01-11
2.x 2.7, 3.x Последняя версия разработки 2016-07-25

Настройка графика matplotlib

import pylab as plt
import numpy as np

plt.style.use('ggplot')

fig = plt.figure(1)
ax = plt.gca()

# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)

# plot the test data
ax.plot( x, test_f(x) , lw = 2)

# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)

# set axis limits
ax.set_xlim(0,np.pi)

plt.draw()

введите описание изображения здесь

# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()

введите описание изображения здесь

Императивный и объектно-ориентированный синтаксис

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

Обязательный синтаксис (иногда называемый синтаксисом state-machine) выдает строку команд, все из которых действуют на самую последнюю фигуру или ось (например, Matlab). С другой стороны, объектно-ориентированный синтаксис явно действует на объекты (фигура, ось и т. Д.), Представляющие интерес. Ключевой момент в zen Python гласит, что явный лучше, чем неявный, поэтому объектно-ориентированный синтаксис более питоничен. Тем не менее, императивный синтаксис удобен для новых конвертиров из Matlab и для написания небольших сценариев «отбрасывания». Ниже приведен пример двух разных стилей.

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)

# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)

# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)

Оба примера дают тот же график, который показан ниже.

введите описание изображения здесь

Установка и настройка

Существует несколько способов установки matplotlib, некоторые из которых будут зависеть от используемой вами системы. Если вам повезет, вы сможете использовать диспетчер пакетов, чтобы легко установить модуль matplotlib и его зависимости.

Windows

На компьютерах Windows вы можете попытаться использовать диспетчер пакетов pip для установки matplotlib. См. Здесь информацию о настройке пипса в среде Windows.

OS X

Рекомендуется использовать пип менеджер пакетов для установки Matplotlib. Если вам нужно установить некоторые из не-Python-библиотек в вашей системе (например, libfreetype ), рассмотрите возможность использования доморощенного .

Если вы не можете использовать pip по какой-либо причине, попробуйте установить его из источника .

Linux

В идеале, системный диспетчер пакетов или пип должен использоваться для установки matplotlib, либо путем установки пакета python-matplotlib , либо путем запуска pip install matplotlib .

Если это невозможно (например, у вас нет привилегий sudo на компьютере, который вы используете), вы можете установить его из источника с --user опции --user : python setup.py install --user . Как правило, это устанавливает matplotlib в ~/.local .

Debian / Ubuntu

sudo apt-get install python-matplotlib

Fedora / Red Hat

sudo yum install python-matplotlib

Поиск проблемы

См. Веб-сайт matplotlib, чтобы узнать, как исправить сломанный matplotlib.

Двумерные (2D) массивы

Отображение двухмерного (2D) массива на осях.

import numpy as np
from matplotlib.pyplot import imshow, show, colorbar

image = np.random.rand(4,4)
imshow(image)
colorbar()
show()

Отображение двухмерного (2D) массива с помощью matplotlib