Вступление
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
. Выполнение этого кода дает:
{.ezlazyload}
Объект Figure
, если он не создан явно, создается по умолчанию и
содержит все элементы, которые мы можем и не можем видеть. Изменение
размера Figure
, в свою очередь, также изменит размер наблюдаемых
элементов.
Давайте посмотрим, как можно изменить размер фигуры.
Изменить размер рисунка в Matplotlib
Установите аргумент фигсайза
Во-первых, самый простой способ изменить размер фигуры - использовать
аргумент 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 дюйма:
{.ezlazyload}
Matplotlib / PyPlot в настоящее время не поддерживают размеры метрик, однако легко написать вспомогательную функцию для преобразования между ними:
def cm_to_inch(value):
return value/2.54
А затем отрегулируйте размер участка следующим образом:
plt.figure(figsize=(cm_to_inch(15),cm_to_inch(10)))
Это создаст участок размером 15 см на 10 см:
{.ezlazyload}
В качестве альтернативы, если вы создаете 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-й позиции.
Этот код приводит к:
{.ezlazyload}
Установите высоту и ширину фигуры в 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()
Этот код приводит к:
{.ezlazyload}
Наконец, вы также можете использовать 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
или использование двух
функций:
{.ezlazyload}
Заключение
В этом уроке мы рассмотрели несколько способов изменить размер фигуры в Matplotlib.
Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашей книгой о визуализации данных в Python{.ebook-link} .
Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :
::: {style=“border: 1px solid #ebebeb;padding: 15px;”} {.ebook-link}
Визуализация данных в Python
::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::
::: {.col-md-8 .col-xs-12 .my-auto} Ограниченная по времени скидка: 2 к 1, сэкономьте 50%!
✅ 30-дневная гарантия возврата денег без вопросов
✅ от начального до продвинутого
✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)
✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::
Визуализация данных в Python с помощью Matplotlib и Pandas - это книга, предназначенная для абсолютных новичков в работе с Pandas и Matplotlib с базовыми знаниями Python и позволяющая им создать прочную основу для расширенной работы с этими библиотеками - от простых графиков до анимированных трехмерных графиков с интерактивными кнопки.
Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.
Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.