Перейти к содержимому

Matplotlib как увеличить размер графика

  • автор:

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

Как изменить размер вызываемого окна с графиком matplotlib

Как я могу регулировать ширину/высоту/название окна, которое открывается при создании графика с помощью matplotlib?
введите сюда описание изображения Чтобы получилось например такое окно: введите сюда описание изображения

Отслеживать

задан 26 фев 2021 в 21:55

143 1 1 серебряный знак 11 11 бронзовых знаков

Почитайте, наконец, документацию и туториалы, чтоли.

26 фев 2021 в 23:29

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

import matplotlib as plt fig, ax = plt.subplots() fig.set_size_inches(w,h) 

где w и h ширина и высота, где значения надо указывать в дюймах (10х10) у меня уже половина всего экрана. А что касается названия окна, то его изменить можно следующим образом:

fig = pylab.gcf() fig.canvas.set_window_title('Graph') 

Как увеличить размер графика в Matplotlib

Как увеличить размер графика в Matplotlib

Вы можете использовать следующий синтаксис, чтобы увеличить размер одного графика в Matplotlib:

import matplotlib.pyplot as plt #define figure size in (width, height) for a single plot plt.figure(figsize=(3,3)) 

И вы можете использовать следующий синтаксис, чтобы увеличить размер всех графиков Matplotlib в записной книжке:

import matplotlib.pyplot as plt #define figure size in (width, height) for all plots plt.rcParams ['figure.figsize'] = [10, 7] 

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: увеличение размера одного графика Matplotlib

Предположим, мы создаем следующий линейный график в Matplotlib:

import matplotlib.pyplot as plt #define x and y x = [1, 6, 10] y = [5, 13, 27] #create plot of x and y plt.plot (x, y) plt.show() 

По умолчанию (ширина, высота) графика Matplotlib (6.4, 4.8).

Однако мы можем использовать следующий синтаксис, чтобы увеличить размер графика до любых размеров, которые нам нужны:

import matplotlib.pyplot as plt #define plot size plt.figure(figsize=(5,8)) #define x and y x = [1, 6, 10] y = [5, 13, 27] #create plot of x and y plt.plot (x, y) plt.show() 

Пример 2: увеличение размера всех графиков Matplotlib

В следующем коде показано, как установить размер графика для всех графиков Matplotlib в записной книжке:

import matplotlib.pyplot as plt #define plot size for all plots plt.rcParams ['figure.figsize'] = [10, 4] #define first dataset x = [1, 6, 10] y = [5, 13, 27] #create first plot plt.plot (x, y) plt.show() #define second dataset x2 = [1, 6, 10] y2 = [5, 19, 12] #create second plot plt.plot (x2, y2) plt.show() 

Обратите внимание, что оба графика имеют ширину и высоту, указанные аргументами rcParams .

Использование библиотеки Matplotlib. Как менять стиль линий на одномерном графике

В предыдущем примере мы рисовали простейшие графики, а теперь научимся изменять стиль линий, которыми они рисуются.

Есть несколько способов описания стиля линий.

Задание стиля в виде строки

Первый и самый простой способ состоит в использовании дополнительного третьего текстового параметра функции plot() из пакета pyplot. Строка стиля может включать в себя три компонента: цвет линии, стиль линии, маркер. В следующих двух таблицах таблице показаны символы, обозначающие стили и маркеры.

Символ стиля Результат
-.
:
.
,
Символ маркера Результат
o
v
^
>
1
2
3
4
s
p
*
h
H
+
x
D
d
|
_

Например, если нужно нарисовать график штриховой линией, то в качестве стиля нужно указать «—«. Для отображения графика сплошной линией с маркером в виде кружочков можно использовать стиль «-o». Если же мы хотим сделать цвет графика, например, красным, то можно добавить букву, отвечающую за красный цвет («r»): «-or».

Следующий пример рисует график функции с использованием стиля «x», когда график представляет собой последовательность крестиков, не соединенных между собой линиями. Поскольку цвет не указан, то используется цвет по умолчанию.

# . Импортируем один из пакетов Matplotlib
import matplotlib. pyplot as plt

import numpy as np

if __name__ == ‘__main__’ :
# Интервал изменения переменной по оси X
xmin = — 20.0
xmax = 20.0

# Шаг между точками
dx = 0.5

# . Создадим список координат по оси X на отрезке [xmin; xmax], включая концы
x = np. arange ( xmin , xmax + dx , dx )

# Вычислим функцию на заданном интервале
y = np. sin ( 0.2 * x ) * np. cos ( 0.1 * x )

# . Нарисуем одномерный график с использованием стиля
plt. plot ( x , y , «x» )

# . Покажем окно с нарисованным графиком
plt. show ( )

Давайте скомбинируем стиль линии и метки. Например, если в предыдущем примере заменить вызов функции plot() на следующую:

plt. plot ( x , y , «:x» )

то мы получим следующий график:

Два стиля маркера указывать нельзя, в этом случае мы получим ошибку.

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

Например, следующая строка кода рисует график черной линией, на которой которую наносятся маркеры в виде звездочек

plt. plot ( x , y , «-*k» )

Более гибкий способ задания стиля

Другой способ более гибкий, в том числе в плане задания цветов. Он состоит в том, чтобы в явном виде задавать различные параметры линии. В этом случае один параметр, который отвечал за стиль в прошлых примерах, разобьем на несколько параметров:

  • color или c — задает цвет.
  • marker — задает вид маркера.
  • linestyle — стиль линии.

Кроме того, можно использовать дополнительные параметры. Например:

  • markerfacecolor — цвет маркеров.
  • markersize — размер маркера.
  • linewidth или lw — толщина линии.

Есть еще и другие параметры, но о них мы пока говорить не будем.

Если в первом способе мы были ограничены восемью цветами, то теперь цвета настраиваются более гибко. О том, как можно задавать цвета я уже писал в статье Способы задания цвета в Matplotlib.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *