Рубрики
Без рубрики

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

В этом уроке мы рассмотрим, как изменить размер фигуры в Matplotlib. Мы будем использовать аргумент figsize, а также функции set_fig height() и set_fig width() как на обычных осях, так и на подзаголовках.

Автор оригинала: David Landup.

Вступление

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 . Запуск этого кода дает:

синусоидальная визуализация python

Объект 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 дюйма:

изменение размера рисунка с помощью figsize

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

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

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

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

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

добавление подзаголовков в matplotlib

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

Вместо аргумента figsize мы также можем задать высоту и ширину фигуры. Это можно сделать либо с помощью функции set() с аргументом fig height и fig width , либо с помощью функций set_fig height() и 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()

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

установка высоты и ширины рисунка в matplotlib

Наконец, вы также можете использовать функцию 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 или использование двух функций:

установка размера фигуры в дюймах в matplotlib

Вывод

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

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

Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair.