Как изменить размер фигур, нарисованных с помощью matplotlib?

Размер subplot matplotlib

У вас есть полный контроль над размером подломов в Matplotlib.

Вы можете либо изменить размер всего или размер самих себя.

Давайте посмотрим на изменение Отказ

Матплотлиб Рисунок Размер

Во-первых, что такое ? Процитировать Анатомиофматплотлиб :

Это общее окно/страница, на которой все нарисовано. Вы можете иметь несколько независимых цифр и может содержать несколько

Другими словами, Пустой холст вы «краска» все ваши участки.

Если вы довольны размером ваших подломов, но вы хотите, чтобы окончательное изображение было больше/меньше, измените Отказ Сделайте это в верхней части вашего кода с Матплотлиб Рисунок Функция – Отказ

# Make Figure 3 inches wide and 6 inches long
plt.figure(figsize=(3, 6))

# Create 2x1 grid of subplots
plt.subplot(211)
plt.subplot(212)
plt.show()

Перед кодированием любых подломов звоните и укажите Размер с аргумент Принимает кортеж из 2 чисел – изображения в дюймах.

Выше я создал участок 3 дюйма в ширину и 6 дюймов длиннее – Отказ

# Make a Figure twice as long as it is wide
plt.figure(figsize=plt.figaspect(2))

# Create 2x1 grid of subplots
plt.subplot(211)
plt.subplot(212)
plt.show()

Вы можете установить более общее Размер с matplotlib figaspect функция. Это позволяет установить соотношение сторон (высоту/ширина) из Отказ

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

Примечание. Помните формулу соотношения соотношения аспектов (высота/ширина), вспоминая, что на первый взгляд в алфавите.

Теперь давайте посмотрим на положить разные размеры на один Отказ

MATPLOTLIB подкруты разные размеры

Самая сложная часть создания с разными размерами В Matplotlib выясняется, какая фракция каждая занимает.

Итак, вы должны знать, на что вы стремитесь к началу. Вы можете набросать его на бумаге или нарисовать фигуры в PowerPoint. Как только вы сделали это, все остальное намного проще.

Я собираюсь создать эту форму

Я пометил фракцию каждый занимает, так как нам нужно это для нашего звонки.

Я сначала создадим самую большой подборку и остальные в порядке убывания.

Правая сторона половина участка. Это один из двух участков на с 1 строкой и 2 столбцами. Чтобы выбрать его с , вам нужно установить Отказ

Обратите внимание, что на изображении синие номера являются значениями индекса каждый имеет. В коде, это

В коде, это

plt.subplot(122)

Теперь выберите нижнюю левую В A 2 × 2 GRID I.E.

plt.subplot(223)

Наконец, выберите два верхних На левой стороне 4 × 2 сетки I.E. и Отказ

plt.subplot(421)
plt.subplot(423)

Когда вы положите это в целом, вы получите

# Subplots you have just figured out
plt.subplot(122)
plt.subplot(223)
plt.subplot(421)
plt.subplot(423)

plt.tight_layout(pad=0.1)
plt.show()

Идеальный! Ломать вниз на их отдельные части и зная форму, которую вы хотите, делает все проще.

Размер Subplot Matplotlib отличается

Возможно, вы заметили, что каждый из В предыдущем примере занял Фракция пространства – , и Отказ

С функцией Subplot MatPlotlib вы можете Только создать То есть Отказ

Невозможно создать вышеуказанный участок в Matplotlib с использованием функция. Однако, если вы используете MATPLOTLIB подломов Функция или Тогда это можно сделать.

NullFormatter

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

from matplotlib.ticker import NullFormatter

А, затем,
применить к оси абсцисс или ординат:

ax.xaxis.set_major_formatter(NullFormatter())

Мы здесь сначала
обращаемся к объекту xaxis, отвечающий за ось Ox, и вызываем
функцию set_major_formatter(), передавая ей
экземпляр класса NullFormatter. В результате, подписи у этой оси
исчезают и мы видим следующий результат:

По аналогии,
можно работать и с осью ординат, только для этого следует использовать объект yaxis:

ax.yaxis.set_major_formatter(NullFormatter())

Увидим похожий
результат, но уже для оси Oy.

Matplotlib tight_layout.

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

  1. Этикетки оси набор с и ,
  2. Метки галочки набор и ,
  3. Набор заголовков с и

Обратите внимание, что эта функция является экспериментальной. Это не идеально, но часто делает действительно хорошую работу

Кроме того, обратите внимание, что он не работает слишком хорошо с легендами или Colorbars – вы увидите, как работать с ними позже.

Давайте посмотрим самый простой пример без каких-либо меток или названий.

plt.subplot(311)
plt.subplot(312)
plt.subplot(313)
plt.tight_layout()
plt.show()

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

plt.subplot(311)
plt.subplot(312)
plt.subplot(313)
plt.tight_layout(pad=0.1)
plt.show()

Теперь между сюжетами меньше места между участками, но все все еще читаемо. Я использую В каждом сюжете (без колобаров или легендов) и я рекомендую вам также сделать. Это простой способ сделать ваши участки великолепны.

Проверьте Документы больше информации и аргументов, которые Tight_layout в matplotlib принимает.

Теперь давайте посмотрим, как добавить больше информации в наши подложки в Matplotlib.

Построение графиков разного типа

Мы можем построить различные графики, используя модуль pyplot.

1. Линейный график

Линейный график используется для отображения информации в виде серии линий. Его легко строить.

Пример –

 
from matplotlib import pyplot as plt   
   
x =    
y =    
   
plt.plot(x,y)   
   
plt.title("Line graph")   
plt.ylabel('Y axis')   
plt.xlabel('X axis')   
plt.show()   

Выход:

Линия может быть изменена с помощью различных функций. Это делает график более привлекательным. Ниже приведен пример.

 
from matplotlib import pyplot as plt   
from matplotlib import style   
   
style.use('ggplot')   
x =    
y =    
x2 =    
y2 =    
plt.plot(x, y, 'b', label='line one', linewidth=5)   
plt.plot(x2, y2, 'r', label='line two', linewidth=5)   
plt.title('Epic Info')   
fig = plt.figure()   
plt.ylabel('Y axis')   
plt.xlabel('X axis')   
 
plt.show() 

2. Столбчатая диаграмма

Одна из наиболее распространенных диаграмм, которая используется для представления данных, связанных с категориальными переменными. Функция bar() принимает три аргумента – категориальные переменные, значения и цвет.

Пример –

 
from matplotlib import pyplot as plt   
Names =    
Marks =    
plt.bar(Names,Marks,color = 'blue')   
plt.title('Result')   
plt.xlabel('Names')   
plt.ylabel('Marks')   
plt.show()   

3. Круговая диаграмма

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

Пример –

 
from matplotlib import pyplot as plt   
   
# Pie chart, where the slices will be ordered and plotted counter-clockwise:   
Aus_Players = 'Smith', 'Finch', 'Warner', 'Lumberchane'   
Runs =    
explode =(0.1, 0, 0, 0)  # it "explode" the 1st slice    
   
fig1, ax1 = plt.subplots()   
ax1.pie(Runs, explode=explode, labels=Aus_Players, autopct='%1.1f%%',   
        shadow=True, startangle=90)   
ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.   
   
plt.show()   

Выход:

4. Гистограмма

Гистограмма и столбчатая диаграмма очень похожи, но есть небольшая разница. Гистограмма используется для представления распределения, а столбчатая диаграмма используется для сравнения различных объектов. Гистограмма обычно используется для построения графика частоты ряда значений по сравнению с набором диапазонов значений.

В следующем примере мы взяли данные о различных процентах баллов учащегося и построили гистограмму в зависимости от количества учащихся. Давайте разберемся в следующем примере.

Пример –

 
from matplotlib import pyplot as plt   
from matplotlib import pyplot as plt   
percentage =    
number_of_student =    
plt.hist(percentage, number_of_student, histtype='bar', rwidth=0.8)   
plt.xlabel('percentage')   
plt.ylabel('Number of people')   
plt.title('Histogram')   
plt.show()   

Выход:

Разберемся еще на одном примере.

Пример – 2:

 
from matplotlib import pyplot as plt   
# Importing Numpy Library   
import numpy as np   
plt.style.use('fivethirtyeight')   
   
mu = 50   
sigma = 7   
x = np.random.normal(mu, sigma, size=200)   
fig, ax = plt.subplots()   
   
ax.hist(x, 20)   
ax.set_title('Historgram')   
ax.set_xlabel('bin range')   
ax.set_ylabel('frequency')   
   
fig.tight_layout()   
plt.show()   

Выход:

5. Точечная диаграмма

Данная диаграмма используется для сравнения переменной по отношению к другим переменным. Она определяется как влияние одной переменной на другую. Данные представлены в виде набора точек.

Пример –

 
from matplotlib import pyplot as plt   
from matplotlib import style   
style.use('ggplot')   
   
x =    
y =    
   
x2 =    
y2 =    
   
plt.scatter(x, y)   
   
plt.scatter(x2, y2, color='g')   
   
plt.title('Epic Info')   
plt.ylabel('Y axis')   
plt.xlabel('X axis')   
   
plt.show()   

Выход:

Пример – 2:

 
import matplotlib.pyplot as plt   
a =  
b =    
   
a1 =    
b1 =    
plt.scatter(a, b, label='high income low saving', color='b')   
plt.scatter(a1, b1, label='low income high savings', color='g')   
plt.xlabel('saving*100')   
plt.ylabel('income*1000')   
plt.title('Scatter Plot')   
plt.legend()   
plt.show()   

Выход:

В этом руководстве мы обсудили все основные типы графиков, которые используются при визуализации данных. Чтобы узнать больше о графике, посетите наш учебник по matplotlib.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Точечный график

Для построения точечного графика используется функция scatter().

Axes3D.scatter(self, xs, ys, zs=0, zdir=’z’, s=20, c=None, depthshade=True, *args, **kwargs)

  • xs, ys: массив

    Координаты точек по осям x и y.

  • zsfloat или массив, optional

    Координаты точек по оси z. Если передан скаляр, то он будет присвоен всем точкам графика. Значение по умолчанию: 0.

  • zdir: {‘x’, ‘y’, ‘z’, ‘-x’, ‘-y’, ‘-z’}, optional

    Определяет ось, которая будет принята за z направление, значение по умолчанию: ‘z’

  • s: скаляр или массив, optional

    Размер маркера. Значение по умолчанию: 20.

  • ccolor, массив, массив значений цвета, optional
    • Цвет маркера. Возможные значения:
      • Строковое значение цвета для всех маркеров.
      • Массив строковых значений цвета.
      • Массив чисел, которые могут быть отображены в цвета через функции cmap и norm.
      • 2D массив, элементами которого являются RGB или RGBA.
  • depthshade: bool, optional

    Затенение маркеров для придания эффекта глубины.

  • **kwargs

    Дополнительные аргументы, аналогичные тем, что используются в функции scatter() для построения двумерных графиков.

np.random.seed(123)

x = np.random.randint(-5, 5, 40)
y = np.random.randint(0, 10, 40)
z = np.random.randint(-5, 5, 40)
s = np.random.randint(10, 100, 20)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, s=s)

Как изменить размер Plot Figure Matplotlib Pandas

Как изменить размер рисунка, нарисованного с помощью matplotlib?

870 351 ИЛИ 118 Думая, что размер фигуры в пикселях, я указал (800 600) и программа вылетела! Обратите внимание, что это дюймы. 2 @alexw это в документации? 66 —> чтобы избежать путаницы раз и навсегда

рисунок сообщает вам подпись вызова:

создаст изображение дюйм за дюймом, которое будет размером 80 на 80 пикселей, если вы также не укажете другой аргумент dpi.

  • 101 Если вы уже создали фигуру, скажем, что это ‘цифра 1’ (она используется по умолчанию, когда вы используете pyplot), вы можете использовать figure (num = 1, figsize = (8, 6), … ), чтобы изменить его размер и т. д. Если вы используете pyplot / pylab и чтобы создать всплывающее окно, вам нужно вызвать до вы рисуете что угодно — pyplot / pylab создает фигуру, как только вы что-то рисуете, и размер всплывающего окна кажется фиксированным на этом этапе.
  • 28 Мне кажется, ваш ответ был бы лучше, если бы вы удалили аргументы по умолчанию. Это снижает отношение сигнал / шум без необходимости.
  • 3 Означает ли это, что если вы установите DPI на 1, тогда figsize станет единицей пикселей вместо единицы дюйма? Это было бы более полезно при использовании matplotlib в веб-интерфейсах и графических интерфейсах.
  • 1 с figsize (1,1) у вас будет соотношение на изображении как 1: 1? потому что все мои круговые диаграммы имеют овальную форму, и я нашел единственный способ сделать их круглыми — использовать plot.axis («равно»). они будут иметь такой же эффект или они будут вести себя по-разному?
  • 2 @BrenoBaiardi Это вопрос о размере фигуры. Оси в верхней части рисунка могут по-прежнему иметь неравное соотношение сторон, даже если фигура в целом составляет 1: 1, и даже если блок осей равен 1: 1, данные могут масштабироваться по-разному в направлениях x и y. Итак, нет, эта команда не гарантирует равное соотношение сторон.

Если у вас уже есть фигура, вы можете быстро сделать это:

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

  • 3 Решил мне проблему с , теперь я использую этот код сразу после удаления пространства вокруг области построения с помощью .
  • 9 Аналогично можно запустить .
  • 1 Я использую это в OS X под ipython 3.7, matplotlib 3.0.3. Я могу настроить размер рисунка, но размер окна не изменяется (холст рисунка настраивается, но окно не увеличивается и не сжимается, чтобы разместить холст). Аргумент ключевого слова forward = True, по-видимому, не оказывает ожидаемого эффекта на этой платформе.

Кажется, работает следующее:

Таким образом, ширина фигуры 5 дюймов, а высота 10. дюймы.

Затем класс Figure использует это значение по умолчанию для одного из своих аргументов.

  • 3 Это также хорошо работает в верхней части записной книжки iPython, которая (с учетом —pylab = inline) имеет rcParams, уже импортированные на верхнем уровне.
  • 4 Это не сработало на моей машине Windows с интерфейсом OO для pyplot и бэкэнда Qt. работал.
  • 2 Этот ответ в настоящее время обсуждается на Meta
  • Для версии Python: 3.6.4, matplotlib: 2.2.3 Я думаю, вам нужно передать список или кортеж, например. rcParams [’figure.figsize’] = (5, 10)
  • 2 Кто-нибудь знает, почему это не работает при первом запуске ячейки?

ИСПОЛЬЗОВАНИЕ plt.rcParams

Существует также этот обходной путь, если вы хотите изменить размер без использования среды фигуры. Итак, если вы используете например, вы можете установить кортеж с шириной и высотой.

Это очень полезно при построении инлайн (например, с помощью IPython Notebook). Как заметил @asamaier, желательно не помещать этот оператор в ту же ячейку операторов импорта.

Списки маркеров Matplotlib

Прежде чем начать с различных иллюстраций matplotlib, вот список всех возможных маркеров в модуле matplotlib вместе с их символом и описанием:

“.” точка
“, “ пиксель
“o” круг
“v” triangle_down
“^” triangle_up
“<“ triangle_left
“>” triangle_right
“1” trip_down
“2” tri_up
“3” tri_left
“4” tri_right
“8” восьмиугольник
“s” площадь
“p” пентагон
“P” плюс (заполнено)
“*” звезда
“h” шестиугольник 1
“H” шестиугольник 2
“+” плюс
“x” x
“X” x (заполнено)
“D” бриллиант
“d” thin_diamond
“|” vline
“_” хлайн
0 (ГАЛОЧКА СЛЕВА) тик влево
1 (ГАЛОЧКА СПРАВА) галочка справа
2 (ГАЛОЧКА ВВЕРХ) ограбление
3 (ОТМЕТЬТЕ ГАЛОЧКОЙ ВНИЗ) поставьте галочку
4 (КАРЕТКА СЛЕВА) каретка слева
5 (CARPETRIGHT) carpetright
6 (КАРЕТКА ВВЕРХ) каретка вверх
7 (КАРЕТКА ВНИЗ) каретка вниз
8 (КАРЕТКА ЛЕВАЯ БАЗА) каретка слева (по центру у основания)
9 (КАРЕТКА ПРАВОГО ОСНОВАНИЯ) carpetright (по центру у основания)
10 (КАРЕТКА ВВЕРХ ПО ОСНОВАНИЮ) каретка вверх (по центру у основания)
11 (ОСНОВАНИЕ КАРЕТКИ ВНИЗ) каретка вниз (по центру у основания)
“Нет”, “” или “” ничего
‘$…$’ Визуализируйте строку с помощью mathtext. Например, “$r$” для маркера, показывающего букву r.
вертс Список пар (x, y), используемых для вершин пути. Центр маркера находится в точке (0, 0), а размер нормализуется таким образом, что созданный путь инкапсулируется внутри элементарной ячейки.
путь Экземпляр пути
(numsides, стиль, угол) Маркер также может быть кортежем (numsides, style, angle), который создаст пользовательский, обычный символ.A) numsides: количество сторон B) style: стиль правильного символа,0: правильный многоугольник1: звездообразный символ2: звездочка

Рисование 3D-прямоугольника

Главное, чтобы нарисовать 3d-прямоугольник, – это набор правильных координат. Используя наборы инструментов mpl, вы можете построить 3d-прямоугольник или параллелепипед, используя правильные наборы вершин. Ниже вы можете увидеть код, с помощью которого мы можем создать 3d-прямоугольник

import numpy as np
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection
import matplotlib.pyplot as plt.array(,
                  ,
                  ,
                  ,
                  ,
                  ,
                  ,
                  ]).0*Z.figure().add_subplot(111,)
r = 
X,.meshgrid(r, r)
ax.scatter3D(Z, Z, Z)
verts = ,Z,Z,Z],
 ,Z,Z,Z],
 ,Z,Z,Z],
 ,Z,Z,Z],
 ,Z,Z,Z],
 ,Z,Z,Z]]
ax.add_collection3d(Poly3DCollection(verts,,,, alpha=.20))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

Также читайте: 6 Способов построить круг в Matplotlib

Параметры:

  • dpi: Разрешение в точках на дюйм.
  • <Цвет лица(color or ‘auto’, по умолчанию: ‘auto’): Цвет лица фигуры. Если “авто”, используйте текущий цвет лица фигуры.
  • edgecolor(color или ‘auto’, по умолчанию: ‘auto’): Краевой цвет фигуры. Если “авто”, используйте текущий рисунок edgecolor.
  • ориентация – {‘landscape,’ ‘portrait’}: В настоящее время поддерживается только бэкендом postscript.
  • формат(str): Формат файла, например “png”, “pdf”, “svg”, … Поведение, когда это не задано, задокументировано в разделе fname.
  • papertype: Papertypes могут быть “a0 – a10”, “executive”, “b0 – b10”, “letter”, “legal”, “ledger”.”
  • pad_inches: (по умолчанию: 0.1) Количество отступов вокруг сохраненной фигуры.
  • transparent: Делает фон изображения прозрачным. Патч рисунка также будет прозрачным, если только цвет лица и/или цвет края не заданы через kwargs.

ScalarFormatter

Этот форматер
используется пакетом matplotlib по умолчанию. Он
отображает числовые данные так, как они есть с небольшими манипуляциями. Если
число оказывается очень большим (больше 10^10), то его множитель выносится:

То же самое
происходит и с очень маленькими числами (меньше 10^-10). Но мы можем изменить
это поведение и настроить свой диапазон больших и малых значений. Например,
если вывести график в диапазоне степени 10^5:

fig = plt.figure(figsize=(7, 4))
ax = fig.add_subplot()
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
ax.plot(x, np.sinc(x) * 1e5)
ax.grid()
plt.show()

То числа будут
отображены целиком без сокращений. Но, если сформировать ScalarFormatter и указать
максимальную и минимальную степень 4:

sf = ScalarFormatter()
sf.set_powerlimits((-4, 4))
ax.yaxis.set_major_formatter(sf)

то результат будет
следующий:

Как видите,
степень 10^5 была вынесена за скобки.

Если мы хотим
настроить такое поведение глобально для всех графиков, то можно воспользоваться
словарем rcParams и
переопределить ключ axes.formatter.limits:

matplotlib.rcParams"axes.formatter.limits" = (-4, 4)

Matplotlib subplot dpi.

Точки на дюйм (DPI) – это мера разрешения принтера. Это количество цветных точек, помещенных на каждый квадратный дюйм бумаги, когда он напечатан. Чем больше точек у вас есть, тем выше качество изображения. Если вы собираетесь распечатать свой участок на большом плакате, это хорошая идея использовать большой DPI.

DPI для каждого контролируется Словарь ( Хотите освоить словари? Не стесняйтесь читать Учебное пособие в Ultimate Finxter ). Содержит все Конфигурация времени выполнения настройки. Если вы печатаете На экран вы увидите все переменные, которые вы можете изменить. Мы хотим Отказ

Давайте сначала сделаем простую строку сюжетом с DPI по умолчанию (72,0), а затем намного меньшее значение.

# Print default DPI
print(f"The default DPI in matplotlib is {plt.rcParams}")

# Default DPI
plt.plot()
plt.title('DPI - 72.0')
plt.show()

# Smaller DPI
plt.rcParams = 30.0
plt.plot()
plt.title('DPI - 30.0')
plt.show()

# Change DPI back to 72.0
plt.rcParams = 72.0
The default DPI in matplotlib is 72.0

С меньшим DPI меньше и имеет более низкое разрешение.

Если вы хотите навсегда изменить DPI всех MATPLOTLIB – или любое из настроек конфигурации выполнения – найдите Файл в вашей системе и измените его.

Вы можете найти это, введя

import matplotlib as mpl
mpl.matplotlib_fname()

После того, как вы нашли его, есть отмечает внутри, говоря вам, что все делает.

Преобразование в см

В Кортеж принимает дюймы, поэтому, если вы хотите установить его в сантиметрах, вам нужно разделить их на 2,54, посмотрите этот вопрос.

  • 4 Отлично! Также полезно для настройки один раз и многократного построения графика.
  • По какой-то причине кажется, что это больше не работает в блокноте Jupyter (но раньше).
  • @Ray Можете ли вы написать версию своей записной книжки Jupyter и поведение, для меня это работает?
  • @GM в прошлый раз, когда я тестировал, это были Jupyter версии 4.3.0 и Python 3.6.2 от Anaconda в Windows 10 и Google Chrome 63.0.3239.84.
  • 9 Чтобы все заработало, мне нужно позвонить в дополнительной камере. Когда я вызываю его в той же ячейке, что и оператор импорта, он игнорируется.

Пожалуйста, попробуйте следующий простой код:

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

  • 14 Этот ответ говорит мне, что это м, о чем другие не так ясно говорят. Я продолжаю пробовать такие вещи, как и
  • «_tkinter.TclError: недостаточно свободной памяти для буфера изображений»
  • 6 это ключевой ход. Спасибо.
  • 1 В ноутбуке jupyter это сработало для меня: plt.figure (figsize = (20,10))
  • Для тех, кто использует jupyter notebook, убедитесь, что вы используете plt.figure (figsize = (15, 10)) перед другими командами plt.

Если вы ищете способ изменить размер фигуры в Панды, вы могли бы сделать, например:

где это фрейм данных Pandas. Или, чтобы использовать существующую фигуру или оси

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

Первая ссылка в Google для AdjustingImageSize (кеш страницы Google).

Вот тестовый сценарий со страницы выше. Это создает файлы одного и того же изображения разного размера:

Вывод:

Два примечания:

  1. Комментарии модуля и фактический результат различаются.

  2. Этот ответ позволяет легко объединить все три изображения в один файл изображения, чтобы увидеть разницу в размерах.

7 Каждый раз, когда я пытаюсь вспомнить, как это сделать, я попадаю в этот пост. Итак, это код, который я обычно ищу: fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size&lsqb;0&rsqb;*2, default_size&lsqb;1&rsqb;*2) )

Вы также можете использовать:

Вы можете просто использовать (из matplotlib.figure.Figure):

Начиная с Matplotlib 2.0.0, изменения на вашем холсте будут видны немедленно, поскольку ключевое слово по умолчанию .

Если вы хотите просто изменить ширину или же высота вместо обоих, вы можете использовать

или же

Они также немедленно обновят ваш холст, но только в Matplotlib 2.2.0 и новее.

Рисование геометрических фигур на графике

Пакет matplotlib позволяет
рисовать произвольные фигуры прямо в координатных осях. Это очень удобно, когда
нужно добавить нестандартную графическую информацию к отображаемому графику.
Давайте посмотрим как это делается.

Для начала
рассмотрим создание ломаной линии с помощью класса Line2D:

from matplotlib.lines import Line2D

Объект ломаной
создается путем передачи списка координат по x и y конструктору
этого класса:

l1 = Line2D(1, 2, 3, 1, 2, 3)

Затем, вызвать
метод add_line() и прописать
граничные значения, чтобы линия была видна в поле рисования графика:

ax.add_line(l1)
ax.set(xlim=(1, 3), ylim=(1, 3))

Или, можно
сделать так. Сформировать множество точек для косинусоиды и отобразить ее на
графике:

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
cos = Line2D(x, np.cos(x))
ax.add_line(cos)
ax.set(xlim=(-2*np.pi, 2*np.pi), ylim=(-1, 1))

Классы других
стандартных геометрических фигур находятся в модуле:

from matplotlib.patches import *

Полный список
классов можно посмотреть в официальной документации:

Например, можно
нарисовать прямоугольник с помощью класса Rectangle:

rect = Rectangle((, ), 2.5, 0.5, facecolor='g')

Здесь мы в
начале указываем координаты расположения прямоугольника, а затем, его ширину и
высоту. Далее, с помощью параметра facecolor делаем заливку
зеленого цвета.

Чтобы отобразить
этот прямоугольник в координатных осях, нужно взывать метод:

ax.add_patch(rect)

В результате,
получим следующее изображение:

Аналогично можно
использовать любой другой класс модуля matplotlib.patches. Вот список
основных из них:

Класс

Описание

Arc

Для
рисования дуг

Arrow

Для
рисования стрелок (см. также ConnectionPatch, FancyArrowPatch и FancyArrow в
этом же модуле)

Circle

Для
рисования окружностей

CirclePolygon

Для
рисования равносторонних многоугольников

Ellipse

Для
рисования эллипсов

FancyBboxPatch

Для
рисования прямоугольников с разными типами границ (с закругленными углами, в
виде стрелок, с зубчатыми ребрами и т.п.)

PathPatch

Для
рисования линий или замкнутых областей

Polygon

Для
рисования многоугольников

Rectangle

Для
рисования прямоугольников

Wedge

Для
рисования «клина» (сектора окружности)

Вот пример
графика, сформированного с помощью этих классов:

Как видите,
изобразительные инструменты пакета matplotlib весьма
разнообразны и достаточны, наверное, для любых жизненных ситуаций.

Видео по теме

#1. Установка пакета и основные возможности

#2. Функция plot для построения и оформления двумерных графиков

#3. Отображение нескольких координатных осей в одном окне

#4. Граничные значения осей и локаторы для расположения меток на них

#5. Настраиваем формат отображения меток у координатных осей

#6. Делаем логарифмический масштаб у координатных осей

#7. Размещаем стандартные текстовые элементы на графике

#8. Добавляем легенду и рисуем геометрические фигуры на графиках

#9. Рисуем ступенчатые, стековые, stem и точечные графики

#10. Рисуем гистограммы, столбчатые и круговые диаграммы

#11. Показ изображений и цветовых сеток

#12. Как строить трехмерные графики

#13. Рисуем линии уровня функциями contour, contourf и tricontour, tricontourf

#14. Создаем анимацию графиков Классы FuncAnimation и ArtistAnimation

Куда пойти отсюда?

Вы хотите, чтобы вы могли быть программистом на полный рабочий день, но не знаете, как начать?

Ознакомьтесь с чистым упаковочным величином, где Chris – Creator of Finxter.com – учит вас стать фрилансером Python в 60 дней или вернуть деньги!

https://tinyurl.com/become-a-python-freelancer

Неважно, если вы начинаете питон или Python Pro. Если вы не делаете шесть фигур/год с Python прямо сейчас, вы узнаете что-то из этого вебинара

Это доказаны, методы NO-BS, которые получают ваши результаты быстро.

Этот вебинар не будет онлайн навсегда. Нажмите на ссылку ниже, прежде чем сиденья наполнится и научитесь стать фрилансером Python, гарантированно.

https://tinyurl.com/become-a-python-freelancer

Преобразование WordPress от imshow.ipynb by nb2wp v0.3.1

Expert Writer & Content Creator – наука о науке и машине. – Я помогаю образовательным компаниям создавать привлечение в блоге и видеоконтентах преподавания данных науки для начинающих. В отличие от моих конкурентов, я узнаю новые концепции каждый день и так понимаю, что это нравится быть студентом. Мои статьи легко понять, эффективны и приятно читать. Мои видео достойны, участвуют и подробно. – Работать со мной, пожалуйста, обратитесь к Upwork https://tinyurl.com/hire-adam-murphy

Поверхность

Для построения поверхности используйте функцию plot_surface().

plot_surface(self, X, Y, Z, *args, norm=None, vmin=None, vmax=None, lightsource=None, **kwargs)

  • X, Y, Z : 2D массивы

    Данные для построения поверхности.

  • rcount, ccount : int

    см. rcount, ccount в “Каркасная поверхность“.

  • rstride, cstride : int

    см.rstride, cstride в “Каркасная поверхность“.

  • color: color

    Цвет для элементов поверхности.

  • cmapColormap

    Colormap для элементов поверхности.

  • facecolors: массив элементов color

    Индивидуальный цвет для каждого элемента поверхности.

  • normNormalize

    Нормализация для colormap.

  • vmin, vmax: float

    Границы нормализации.

  • shade: bool

    Использование тени для facecolors. Значение по умолчанию: True.

  • lightsource
  • **kwargs

    Дополнительные аргументы, определяемые  Poly3DCollection.

u, v = np.mgrid
x = np.cos(u)*np.sin(v)
y = np.sin(u)*np.sin(v)
z = np.cos(v)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='inferno')
ax.legend()

Вывод

В сегодняшней статье мы узнали, как сохранять цифры на примерах реального времени с помощью функции plt.savefig (). Мы использовали различные методы и различные комбинации параметров в соответствии с вашим выбором. Лучшая практика кодирования заключается в том, чтобы попробовать все возможные комбинации методов и параметров. Обратитесь к этой статье для любых запросов, связанных с Matplotlib savefig() в Python.

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: