Skip to content

Pyplot

matplotlib.pyplot - это модуль в matplotlib, который предоставляет интерфейс для создания графиков. Он предоставляет набор функций, которые позволяют быстро и легко визуализировать данные. Вот сгруппированные и описанные наиболее часто используемые свойства и методы matplotlib.pyplot:

1. Создание и настройка фигуры и осей:

  • plt.figure(figsize=(width, height), dpi=dots_per_inch, facecolor=color, edgecolor=color): Создает новое окно (фигуру) для графика.
    • figsize: Кортеж, задающий ширину и высоту фигуры в дюймах.
    • dpi: Разрешение фигуры в точках на дюйм.
    • facecolor: Цвет фона фигуры.
    • edgecolor: Цвет рамки фигуры.
  • plt.subplot(nrows, ncols, index, **kwargs) или plt.axes([left, bottom, width, height], **kwargs): Добавляет оси (подграфик) к текущей фигуре. subplot использует сетку, axes позволяет задать положение и размер вручную.
    • nrows: Количество строк подграфиков в сетке (для subplot).
    • ncols: Количество столбцов подграфиков в сетке (для subplot).
    • index: Индекс подграфика (начиная с 1) (для subplot).
    • left, bottom, width, height: Положение и размер осей в долях от размера фигуры (для axes).
    • projection: Тип проекции для осей, например, 'polar' для полярных координат.
  • plt.gca(): Возвращает текущие оси (подграфик).
  • plt.gcf(): Возвращает текущую фигуру.
  • plt.close(fig=None): Закрывает фигуру. Если fig не указана, закрывает текущую фигуру. plt.close('all') закроет все открытые фигуры.

2. Построение основных типов графиков:

  • plt.plot(x, y, fmt, **kwargs): Рисует линии и/или маркеры.
    • x, y: Массивы данных для координат x и y.
    • fmt: Строка формата, определяющая цвет, маркер и тип линии (например, 'ro-' - красные кружки, соединенные линией).
    • label: Метка для легенды.
    • linewidth или lw: Толщина линии.
    • linestyle или ls: Тип линии (например, '--' - пунктирная).
    • marker: Тип маркера (например, 'o' - круг, 's' - квадрат).
    • color или c: Цвет линии/маркера.
  • plt.scatter(x, y, s=size, c=color, marker=marker, alpha=transparency, **kwargs): Рисует точечную диаграмму (график рассеяния).
    • s: Размер маркеров.
    • c: Цвет маркеров. Может быть как одиночный цвет, так и массив цветов для каждого маркера.
    • alpha: Прозрачность маркеров (от 0 до 1).
  • plt.bar(x, height, width=bar_width, bottom=bottom_position, align='center', **kwargs): Рисует столбчатую диаграмму.
    • x: Позиции столбцов на оси x.
    • height: Высота столбцов.
    • width: Ширина столбцов.
    • bottom: Позиция нижней части столбцов.
    • align: Выравнивание столбцов ('center' или 'edge').
  • plt.hist(x, bins=num_bins, range=(min_val, max_val), density=False, cumulative=False, **kwargs): Строит гистограмму.
    • x: Данные для построения гистограммы.
    • bins: Количество или границы интервалов (корзин) гистограммы.
    • range: Диапазон значений для гистограммы.
    • density: Если True, то гистограмма нормализуется так, что площадь под ней равна 1.
    • cumulative: Если True, то строится кумулятивная гистограмма.
  • plt.pie(x, labels=labels, autopct='%1.1f%%', shadow=False, startangle=angle, explode=explode_values, **kwargs): Строит круговую диаграмму.
    • x: Размеры секторов круга.
    • labels: Метки для секторов.
    • autopct: Формат для отображения процентов в секторах.
    • shadow: Если True, то добавляется тень.
    • startangle: Угол, с которого начинается отрисовка первого сектора.
    • explode: Список, определяющий, на сколько нужно выдвинуть каждый сектор.
  • plt.imshow(X, cmap=colormap, aspect=aspect_ratio, interpolation=interpolation_method, origin='upper'/'lower', extent=(left, right, bottom, top), **kwargs): Отображает данные как изображение.
    • X: Двумерный массив данных.
    • cmap: Цветовая карта (например, 'gray', 'viridis', 'jet').
    • aspect: Соотношение сторон изображения ('auto', 'equal' или число).
    • interpolation: Метод интерполяции пикселей.
    • origin: Положение начала координат ('upper' - сверху слева, 'lower' - снизу слева).
    • extent: Задает координаты x и y для углов изображения.

3. Настройка внешнего вида графика:

  • plt.title(label, fontdict=None, loc='center', pad=None, **kwargs): Добавляет заголовок к графику.
    • label: Текст заголовка.
    • fontdict: Словарь, содержащий настройки шрифта.
    • loc: Положение заголовка ('center', 'left', 'right').
    • pad: Расстояние между заголовком и осями.
  • plt.xlabel(label, fontdict=None, loc='center', pad=None, **kwargs): Добавляет метку оси x.
    • label: Текст метки.
    • loc: Положение метки ('center', 'left', 'right').
  • plt.ylabel(label, fontdict=None, loc='center', pad=None, **kwargs): Добавляет метку оси y.
    • label: Текст метки.
    • loc: Положение метки ('center', 'bottom', 'top').
  • plt.xlim(xmin, xmax) или plt.xlim((xmin, xmax)): Устанавливает пределы оси x.
  • plt.ylim(ymin, ymax) или plt.ylim((ymin, ymax)): Устанавливает пределы оси y.
  • plt.xticks(ticks, labels=None, **kwargs): Устанавливает деления и метки на оси x.
    • ticks: Список позиций делений.
    • labels: Список меток делений.
  • plt.yticks(ticks, labels=None, **kwargs): Устанавливает деления и метки на оси y.
  • plt.legend(loc='best', **kwargs): Отображает легенду графика.
    • loc: Положение легенды ('best', 'upper right', 'upper left', и т.д.).
  • plt.grid(b=None, which='major', axis='both', **kwargs): Добавляет или убирает сетку на графике.
    • b: True/False для отображения/скрытия сетки.
    • which: Какие деления использовать для сетки ('major', 'minor', 'both').
    • axis: По каким осям отображать сетку ('both', 'x', 'y').
  • plt.text(x, y, s, fontdict=None, **kwargs): Добавляет текст в произвольную позицию на графике.
    • x, y: Координаты текста.
    • s: Текст для отображения.
  • plt.annotate(text, xy, xytext=None, arrowprops=None, **kwargs): Добавляет аннотацию на график (текст с указателем).
    • text: Текст аннотации.
    • xy: Координаты точки, которую аннотируем.
    • xytext: Координаты текста аннотации.
    • arrowprops: Словарь, содержащий свойства стрелки.
  • plt.axvline(x, **kwargs): Рисует вертикальную линию на графике.
  • plt.axhline(y, **kwargs): Рисует горизонтальную линию на графике.
  • plt.axvspan(xmin, xmax, **kwargs): Рисует вертикальный закрашенный прямоугольник на графике.
  • plt.axhspan(ymin, ymax, **kwargs): Рисует горизонтальный закрашенный прямоугольник на графике.

4. Сохранение и отображение графика:

  • plt.show(): Отображает график в отдельном окне. (Используется только если вы не встраиваете график в другой GUI, например, tkinter).
  • plt.savefig(fname, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, format='png', bbox_inches='tight', **kwargs): Сохраняет график в файл.
    • fname: Имя файла для сохранения.
    • dpi: Разрешение файла в точках на дюйм.
    • format: Формат файла ('png', 'jpg', 'pdf', 'svg', и т.д.).
    • bbox_inches: Если tight, то при сохранении графика обрезаются лишние белые поля.

5. Дополнительные методы (немного реже используемые, но полезные):

  • plt.setp(obj, **kwargs): Устанавливает свойства объектов matplotlib.
  • plt.colormaps(): Возвращает список доступных цветовых карт.
  • plt.cm.get_cmap(name): Возвращает цветовую карту по ее имени.

Пример использования:

python
import matplotlib.pyplot as plt
import numpy as np

# Создание данных
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Создание фигуры и осей
fig, ax = plt.subplots()

# Построение графика
ax.plot(x, y, label='sin(x)')

# Настройка графика
ax.set_xlabel('X-ось')
ax.set_ylabel('Y-ось')
ax.set_title('График синуса')
ax.legend()
ax.grid(True)

# Сохранение графика
plt.savefig('sin_plot.png')

# Отображение графика (если не используете GUI)
plt.show()

Этот список охватывает большинство часто используемых функций и свойств из matplotlib.pyplot. Понимание этих элементов позволит вам создавать разнообразные и информативные графики для визуализации ваших данных. Помните, что для более сложных задач или тонкой настройки графиков, часто требуется обращаться к документации matplotlib и изучать объектно-ориентированный интерфейс (создание объектов Figure и Axes напрямую).

Contacts: teffal@mail.ru