Автор оригинала: Team Python Pool.
Matplotlib Figsize | Изменение размера графика с помощью Figsize
Вы недавно начали работать над графиками и графиками с помощью библиотеки matplotlib и не знаете, как изменить размер фигур по своему желанию? Не волнуйся. В этой статье мы поможем вам управлять размером участков так, как вам нравится. Если вы до сих пор не исследовали мир matplotlib, вы можете начать отсюда. Итак, давайте узнаем, как использовать атрибут matplotlib figsize для настройки размера графика.
Matplotlib Figsize-это метод, используемый для изменения размера вашего окна matplotlib. В настоящее время окно по умолчанию генерируется размером 6,4×4,8 дюйма. Используя этот модуль, вы можете изменить его в любом размере.
Что такое Figsize в Python?
Matplotlib Figsize-это метод из класса pyplot, который позволяет изменять размеры графика. Поскольку каждое измерение в генерируемых графиках настраивается библиотекой, визуализировать данные в правильном формате может быть довольно сложно. В результате метод figsize очень полезен для настройки размеров, а также макетов графиков.
Мы можем сделать фигуру выше по размеру, шире, изменив размер в дюймах.
Синтаксис Matplotlib Figsize
Чтобы сделать график или график с помощью matplotlib, мы сначала должны установить его в нашей системе с помощью pip install matplotlib.
Кроме того, figsize является атрибутом класса figure() подмодуля pyplot библиотеки matplotlib. Итак, синтаксис выглядит примерно так-
matplotlib.pyplot.figure(figsize=(float,float))
Параметры-
- Width – Здесь мы должны ввести ширину в дюймах. Ширина по умолчанию равна 6. Чтобы расширить участок, установите ширину больше 1. А чтобы сделать график менее широким, установите ширину меньше 6.
- Высота – Здесь мы должны ввести высоту графика. Значение по умолчанию-4. Чтобы увеличить длину, установите высоту больше 4, а чтобы уменьшить высоту, установите высоту меньше 4.
Что такое default Figsize Matplotlib?
В Matplotlib все диаграммы создаются с размером по умолчанию 6,4 x 4,8 дюйма. Этот размер может быть изменен с помощью метода Figsize соответствующего рисунка. Этот параметр регулируется атрибутом rcParams на рисунке. Используя Figsize, вы можете изменить оба этих значения.
Значения размера фигуры по умолчанию хранятся в виде списка из двух плавающих объектов. Например, rcParams[“рис. figsize”] будет равен [6.4, 4.8] программно.
Что такое rcParams figure Figsize?
rcParams-это атрибут словаря в классе Matplotlib figure, который позволяет настроить внешний вид вашего графика. Этот атрибут отвечает за перенос данных figure size, figure DPI, figure facecolor и figure edgecolor. Все они инициализируются значениями по умолчанию [6.4, 4.8], 100, ‘w’ и ‘w’ соответственно.
Figsize-это ключ в rcParams, который изменяет размер рисунка вашей визуализации данных. На данный момент вы не можете изменить rcParams напрямую, но вы можете использовать для этого различные методы, такие как figsize.
Что такое Matplotlib Figsize Units?
Matplotlib имеет общий способ хранения всех расстояний в дюймах. Для figsize также единицы измерения по умолчанию измеряются в дюймах. если вы хотите, чтобы a использовала другую единицу измерения для figsize, вы можете добиться этого, создав функцию преобразования. Следующий пример объясняет способ инициализации Figsize в сантиметрах (cm) –
Код –
import matplotlib.pyplot as plt import numpy as np def cm_to_inch(value): return value/2.54 .arange(0, 10, 0.1).sin(x) plt.figure(figsize=(cm_to_inch(25), cm_to_inch(15))) plt.plot(x, y) plt.show()
Выход –
Объяснение –
Сначала мы начнем с импорта библиотеки matplotlib. Затем мы создаем массив осей x, значение которого колеблется от 0 до 10 с интервалом 0,1. Функция np.sin() генерирует значения синусоидальной волновой функции. Функция cm_to_inch() преобразует все значения сантиметров в дюймы и инициализирует размеры фигуры.
Изменение высоты и ширины графика
Как высота, так и ширина могут быть изменены методом figure.figsize (). Следующий пример демонстрирует фигуры с размером по умолчанию, а после них-настроенные фигуры разных размеров.
График с размером по умолчанию
Давайте сначала узнаем, как сделать график без установки какого-либо конкретного размера, и посмотрим, является ли он нашим желаемым размером или нет.
Мы создадим простой график, создав наши собственные данные.
import matplotlib.pyplot as plt x=[1,2,3,4,5,6,7,8,9] y=[i**2 for i in x] plt.plot(x,y) plt.title("Plot of Default Size")
Изменение высоты с помощью Matplotlib Figsize
Предположим, у нас есть фрейм данных pandas, который содержит информацию о некоторых видах спорта и о том, сколько людей играют в эти виды спорта. Что-то вроде этого-
Мы хотим сделать из него гистограмму, давайте сначала сделаем график с размером по умолчанию. Я сделал этот фрейм данных в виде массива, чтобы облегчить задачу.
# import the pyplot submodule of matplotlib library # and rename it as plt import matplotlib.pyplot as plt # name of the sports sports_name=['Aquatics', 'Athletics', 'Rowing', 'Gymnastics', 'Fencing', 'Football','Hockey', 'Wrestling', 'Shooting', 'Sailing', 'Cycling','Canoe / Kayak', 'Basketball', 'Volleyball', 'Equestrian', 'Handball','Boxing', 'Weightlifting', 'Judo', 'Baseball', 'Archery', 'Tennis','Rugby', 'Softball', 'Modern Pentathlon', 'Table Tennis', 'Badminton','Tug of War', 'Taekwondo', 'Polo', 'Lacrosse', 'Golf', 'Ice Hockey','Skating', 'Cricket', 'Triathlon', 'Rackets', 'Croquet','Water Motorsports', 'Basque Pelota', 'Jeu de paume', 'Roque'] # These are people which play the respective sport people_playing_the_sports=[3828, 3448, 2523, 2214, 1547, 1387, 1325,140,105,1061,1025,1002,940,910,894,886,842,548,435,335,305,272,192,180,174,120,120,94,80,66,59,30,27,27,24,18,10,8,5,4,3,3] # To create a bar graph use bar function of pyplot plt.bar(sports_name,people_playing_the_sports) # Rotate the name of sports by 90 degree in x-axis) # show the graph plt.show()
Мы видим, что из-за недостатка места график слишком неопрятен. Для более красивого графика нам нужно изменить ширину графика. Посмотрим, как мы это сделаем.
import matplotlib.pyplot as plt people_playing_the_sports=[3828, 3448, 2523, 2214, 1547, 1387, 1325,1140,105,1061,1025,1002,940,910,894,886,842,548,435,335,305,272,192,180,174,120,120,94,80,66,59,30,27,27,24,18,10,8,5,4,3,3] sports_name=['Aquatics', 'Athletics', 'Rowing', 'Gymnastics', 'Fencing', 'Football','Hockey', 'Wrestling', 'Shooting', 'Sailing', 'Cycling','Canoe / Kayak', 'Basketball', 'Volleyball', 'Equestrian', 'Handball','Boxing', 'Weightlifting', 'Judo', 'Baseball', 'Archery', 'Tennis','Rugby', 'Softball', 'Modern Pentathlon', 'Table Tennis', 'Badminton','Tug of War', 'Taekwondo', 'Polo', 'Lacrosse', 'Golf', 'Ice Hockey', 'Skating', 'Cricket', 'Triathlon', 'Rackets', 'Croquet', 'Water Motorsports', 'Basque Pelota', 'Jeu de paume', 'Roque'] # Increase the width plt.figure(figsize=(15,4)) plt.bar(Sports,people_playing_the_sports)) plt.show()
Разве сейчас не намного лучше? Просто изменение размера графика оказало такое огромное влияние, и теперь мы можем понять href=”https://en.wikipedia.org/wiki/Graph”>график намного лучше. href=”https://en.wikipedia.org/wiki/Graph”>график намного лучше.
Изменение высоты графика с помощью Matplotlib Figsize
Предположим, что мы создали одну и ту же гистограмму горизонтально, высота по умолчанию будет выглядеть неопрятно, не так ли? Давайте посмотрим, как мы можем увеличить высоту графика.
import matplotlib.pyplot as plt people_playing_the_sports=[3828, 3448, 2523, 2214, 1547, 1387, 1325,1140,1105,1061,1025,1002,940,910,894,886,842,548,435,335,305,272,192,180,174,120,120,94,80,66,59,30,27, 27,24,18,10,8,5,4,3,3] sports_name=['Aquatics', 'Athletics', 'Rowing', 'Gymnastics', 'Fencing', 'Football','Hockey', 'Wrestling', 'Shooting', 'Sailing', 'Cycling','Canoe / Kayak', 'Basketball', 'Volleyball', 'Equestrian', 'Handball','Boxing', 'Weightlifting', 'Judo', 'Baseball', 'Archery', 'Tennis','Rugby', 'Softball', 'Modern Pentathlon', 'Table Tennis', 'Badminton','Tug of War', 'Taekwondo', 'Polo', 'Lacrosse', 'Golf', 'Ice Hockey', 'Skating', 'Cricket', 'Triathlon', 'Rackets', 'Croquet', 'Water Motorsports', 'Basque Pelota', 'Jeu de paume', 'Roque'] # Increase the width and the height plt.figure(figsize=(15,10)) plt.barh(Sports,people_playing_the_sports)) plt.show()
Объяснение –
Во-первых, мы начнем с импорта библиотеки matplotlib. затем мы объявили игроков, играющих в спорт и спортивные названия в списке. Затем, инициализируя фигуру matplotlib с помощью параметра figsize, мы можем создать выход большего размера. В нашем случае мы инициализировали его размером 15 х 10 дюймов. Как вы можете видеть из выходных данных, данные широко разнесены и больше, чем размеры по умолчанию.
Изменение размера figsize подзаголовков Matplotlib
Мы также можем создавать подзаголовки с помощью matplotlib. В подзаголовках мы создаем несколько подзаголовков на одной фигуре. Чем больше количество подзаголовков на рисунке, тем больше размер подзаголовка. Мы можем изменить размер фигуры, и любой размер, который мы дадим, будет разделен на подзаголовки.
import matplotlib.pyplot as plt # make subplots with 2 rows and 1 column. # We If there were 3 rows, we would have done-fig, (ax1,ax2,ax3) fig,.subplots(nrows=2,ncols=1,figsize=(6,8)) y=[i*i for i in range(10)] #plotting for 1st subplot ax1.plot(range(10),y) #plotting for 2nd subplot ax2.bar(range(10),y)
Matplotlib Figsize Не работает Ошибка
Иногда мы можем получить ошибку- “matplotlib figsize не работает”. Это происходит, когда мы сначала строим график, а затем устанавливаем figsize.
import matplotlib.pyplot as plt technologies=['Data Science', 'Cyber Security', 'Web Development', 'Android Development', 'Data Analyst'] number_of_students=[78,49,112,129,59] # Wrong way- plt.bar(technologies,number_of_students) plt.figure(figsize=(10,5))) plt.show() # Correct way plt.figure(figsize=(10,5)) plt.bar(technologies,number_of_students)) plt.show()
Это распространенная ошибка, которую могут совершить новые программисты, используя этот метод. Всегда помните, что вы можете установить figsize только перед инициализацией графика. Если график уже инициализирован, вы не можете изменить размеры фигуры. Убедитесь, что вы поместили plt.figure() перед plt.bar (), чтобы избежать этой ошибки.
Как установить размер фигуры в пикселях
Мы также можем установить размер рисунка графика или диаграммы в соответствии с монитором, для этого мы можем использовать dpi нашего монитора. Вы можете определить dpi вашего монитора с помощью поиска в Интернете. Для этого существует множество инструментов.
# the dpi of my monitor is 120 # make a figure with the follwing figsize plt.figure(figsize=(400/my_dpi, 300/my_dpi),)) plt.show()
Надо Читать:
- Как преобразовать строку в нижний регистр в
- Как вычислить Квадратный корень
- Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
- Лучшая книга для изучения Python
Вывод
Мы видели, как изменение ширины и высоты может привести к тому, что график станет намного лучше понимать и создавать идеи. Мы можем сделать это с помощью атрибута matplotlib figsize функции figure() библиотеки matplotlib.
Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.
Счастливого кодирования!