DevGang
Авторизоваться

Изменить размер рисунка в Matplotlib 

Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его параметрами настройки - вы можете настроить практически любой элемент из его иерархии объектов.

В этом уроке мы рассмотрим, как изменить размер фигуры в Matplotlib.

Создание сюжета

Сначала создадим простой график на фигуре:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.show()

Здесь мы построили синусоидальную функцию, начиная от 0 и до 10 с шагом 0.1. Выполнение этого кода дает:

Объект Figure, если явно не создан, создается по умолчанию и содержит все элементы, которые мы можем и не можем видеть. Изменение размера Figure, в свою очередь, изменит размер наблюдаемых элементов.

Давайте посмотрим, как можно изменить размер фигуры.

Изменить размер рисунка в Matplotlib

Установите аргумент figsize

Во-первых, самый простой способ изменить размер фигуры - использовать аргумент figsize. Вы можете использовать этот аргумент либо при инициализации Pyplot, либо в существующем объекте Figure.

Давайте сначала изменим его во время инициализации:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.figure(figsize=(3, 3))
plt.plot(x, y)
plt.show()

Здесь мы получили доступ к экземпляру Figure, который был создан по умолчанию, и передали аргумент figsize. Обратите внимание, что размер определяется в дюймах, а не в пикселях. В результате получится фигура размером 3 на 3 дюйма:

Перед построением переменных важно установить размер фигуры.

Matplotlib / PyPlot в настоящее время не поддерживают размеры метрик, однако легко написать вспомогательную функцию для преобразования между ними:

def cm_to_inch(value):
    return value/2.54

А затем отрегулируйте размер графика следующим образом:

plt.figure(figsize=(cm_to_inch(15),cm_to_inch(10)))

Это создаст участок размером 15 см на 10 см:

В качестве альтернативы, если вы создаете объект Figure для своего сюжета, вы можете сразу назначить размер:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)

fig = plt.figure(figsize=(8, 6))

# Adds subplot on position 1
ax = fig.add_subplot(121)
# Adds subplot on position 2
ax2 = fig.add_subplot(122)

ax.plot(x, y)
ax2.plot(x, z)
plt.show()

Здесь мы явно присвоили объекту возвращаемое значение функции figure(). Затем мы можем добавить оси к этой фигуре, чтобы создать несколько подзаголовков и построить на них график.

Мы использовали функцию add_subplot(), которая принимает ряд числовых значений. Первое число указывает, сколько строк вы хотите добавить к фигуре, второе число указывает, сколько столбцов вы хотите добавить, а третье число указывает номер графика, который вы хотите добавить.

Это означает, что если вы перейдете 111 в функцию add_subplots(), к рисунку будет добавлен один новый подзаголовок. Между тем, если бы вы использовали числа 221, полученный график имел бы четыре оси с двумя столбцами и двумя строками, а формируемый вами подзаголовок находится в 1-й позиции.

Этот код приводит к:

Установите высоту и ширину фигуры в Matplotlib

Вместо аргумента figsize мы также можем установить высоту и ширину фигуры. Это можно сделать либо с помощью функции set() с figheight и figwidth, или через функции set_figheight() и set_figwidth().

Первый позволяет вам написать одну строку для нескольких аргументов, а второй предоставляет более читаемый код.

Пойдем со вторым вариантом:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)

fig = plt.figure()

fig.set_figheight(5)
fig.set_figwidth(10)

# Adds subplot on position 1
ax = fig.add_subplot(121)
# Adds subplot on position 2
ax2 = fig.add_subplot(122)

ax.plot(x, y)
ax2.plot(x, z)
plt.show()

Этот код приводит к:

Наконец, вы также можете использовать эту функцию set_size_inches():

fig = plt.figure()

fig.set_size_inches(10, 5)

# Adds subplot on position 1
ax = fig.add_subplot(121)
# Adds subplot on position 2
ax2 = fig.add_subplot(122)

ax.plot(x, y)
ax2.plot(x, z)
plt.show()

И это работает так же, как установка аргумента figsize или использование двух функций:

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Сделайте первый шаг к новой профессии

Получить скидку