Поиск…


замечания

обзор

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, некоторые из которых будут зависеть от используемой вами системы. Если вам повезет, вы сможете использовать диспетчер пакетов, чтобы легко установить модуль 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.

Настройка графика 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)

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

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

Двумерные (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



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow