Автор оригинала: 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
. Запуск этого кода дает:
Объект 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()
объекту Figure
. Затем мы можем добавить оси к этой фигуре, чтобы создать несколько подзаголовков и построить на них график.
Мы использовали функцию add_subplot ()
, которая принимает ряд числовых значений. Первое число указывает, сколько строк вы хотите добавить к рисунку, второе число указывает, сколько столбцов вы хотите добавить, а третье число указывает номер участка, который вы хотите добавить.
Это означает, что если вы в прошли в 111
в функции add_subplots()
к рисунку будет добавлен один новый подзаголовок. Между тем, если вы использовали цифры 221
, результирующий сюжет будет иметь четыре оси с двумя столбцами и двумя строками – и подзаголовок, который вы формируете, находится в 1-й позиции.
Этот код приводит к:
Установите высоту и ширину фигуры в 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()
Этот код приводит к:
Наконец, вы также можете использовать функцию 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.
Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей книгой .
Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair.