[python][научные вычисления][matplotlib] руководство пользователя

Python

Дата последнего обновления: 20.04.2019

Matplotlib — это библиотека 2D-чертежей для Python, которая создает графику издательского качества в различных печатных форматах и ​​кросс-платформенной интерактивной среде.

При необходимости импортируйте следующие модули:

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import numpy as np

Нажмите на ссылки ниже, чтобы перейти к каждому разделу

Руководство пользователя 1 - Структура графика (изображения, оси/подграфики, отображение, сохранение)

Руководство пользователя 2 — Настройки графика (Тип проекции, Шрифт, Цвет, Название, Оси, Легенда, Стиль маркера, Стиль линии, Прозрачность, Поворот, Компоновка подграфика)

Руководство пользователя 3. Распространенные типы графиков (точечный, кривая, поверхность, столбец, гистограмма, круговая/кольцевая, прямоугольная, контурная, полярная)

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

1. Структура чертежа

Назад к содержанию

1. Рисунок изображения

In [71]: fig=plt.figure(1)
<Figure size 432x288 with 0 Axes>

In [72]: fig=plt.figure(2,figsize=(5,3))
<Figure size 360x216 with 0 Axes>

In [73]: fig.suptitle('title')
Out[73]: Text(0.5,0.98,'title')

Figureэто контейнер верхнего уровня для всех элементов рисования, который можно рассматривать как холст, первый параметрnumУстановите номер изображения, второеfigsizeПараметр задает размер изображения.

Figure.suptitleметод используется для установки общего заголовка изображения (также доступен черезplt.suptitleнастраивать),fontsizeПараметр может установить размер шрифта,xиyПараметр задает координату положения, значение 0.~1.относительноFigureотношение ширины к высоте.

FigureВы не можете рисовать прямо на , вам нужно добавить хотя бы одинAxes, при звонкеpltСтатический метод отрисовки рисуется в самом последнем объявленномFigureВкл., если декларация не отображается, она будет автоматически создана в соответствии с конфигурацией по умолчанию.FigureиAxes,plt.gcf()способ получить текущий рисунокFigure.

Figure.axesМожет получить все под изображениемAxes;Figure.clf()метод очистки изображения.

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

2. Оси координат

x=np.arange(0,720,1)
y1=np.sin(x*np.pi/180)
y2=np.cos(x*np.pi/180)

#方法1
fig=plt.figure(figsize=(7.5,3))
fig.suptitle('sin/cos',fontsize=16)
ax=fig.add_axes((0,0,0.5,0.8),title='ax1')
ax.plot(x,y1)
ax=fig.add_axes((0.6,0,0.5,0.8),title='ax2')
ax.plot(x,y2)
plt.show(fig)

#方法2
fig=plt.figure(figsize=(10.5,3))
fig.suptitle('sin/cos',fontsize=16)
ax=fig.add_subplot(121,title='ax1', projection='3d')
ax.plot(x,y1)
ax=fig.add_subplot(122,title='ax2', projection='3d')
ax.plot(x,y2)
plt.show(fig)

Axesозначает оси, используемые для построения графика,AxesSubplotупакованAxesПодграфыAxesТакже называется подграфом.

При рисовании разных изображений будут использоваться разные типы осей.Наиболее часто используемые оси xy и xyz:AxesиAxes3D. если только одинAxes, вы можете вызывать напрямую, не отображая объявлениеpltСтатический метод рисует,Axesсоздается автоматически (черезadd_subplot(111)). когда их несколькоAxes, вы можете позвонитьAxesотрисовка метода, чтобы убедиться, что изображение отрисовывается на правильном подграфе, при вызове статического отрисовки метода фактически выполняетсяplt.gca()получить последний заявленныйAxes.

Axes.plotэто метод рисования, используемый для рисования графика.AxesПри рисовании вам необходимо указать координаты двух осей x и y, аAxes3DВам необходимо указать координаты трех осей X, Y и Z. В приведенном выше примере координата оси Z не указана, поэтому изображение рисуется на плоскости с высотой 0.

Axesсвязан сFigureна, позвонивFigureизadd_axesилиadd_subplotспособ создания новыхAxesили будет иметьAxesдобавить вFigureначальство. Эти два метода отличаются настройками размера и положения фрагмента изображения, и требуются соответствующие параметры настройки.add_axesпервый параметр методаrectЗадается последовательностью чисел с плавающей запятойAxesрасположение и размер в формате(left,bottom,width,height), значения 0.~1.относительноFigureотношение ширины к высоте.add_subplotПервые три параметра метода соответственно задают количество строк, столбцов и подграфов для интервального деления, например2,3,5значитFigureРазделить на 2 строки и 3 столбца и добавить подграф на 5-м интервале; первые три параметра можно заменить одним 3-битным целым числом для представления того же значения, но значение каждого бита не может превышать 10, например2,3,5соответствовать235.titleПараметр используется для установки заголовка подграфика, который также можно установить с помощьюAxes.set_titleилиplt.titleнастройки метода;projectionПараметр задает тип проекции, то есть тип оси, где,'rectilinear'Указывает прямую (xy) ось координат, которая также является значением по умолчанию.'3d'Представляет трехмерную координатную ось (xyz).

В дополнение к двум вышеуказанным методам вы также можете использоватьfig,ax_list = plt.subplots(figsize=(10.5,3),ncols=2,nrows=1)Чтобы быстро спланировать канву, вам нужно только указать размер канвы, количество делений столбцов и количество делений строк, экономя время написания циклов.

get_childrenспособ получитьAxesВсе элементы чертежа под;collectionsСвойство может получить коллекцию всех элементов рисования; Чтобы получить элемент указанного типа, используйтеget_xlabelи другие методы;claметод очистки содержимого текущей оси.

3. шоу шоу

plt.plot(x,y1)
plt.plot(x,y2)
plt.show()

plt.plot(x,y1)
plt.show()
plt.plot(x,y2)
plt.show()

plt.show()Этот метод используется для отображения нарисованного изображения, как правило, сpltИспользуется статический метод рисования (т.е. не показывает объявлениеFigureСлучай). При рисовании статическим методом, если вы не вызываетеshow, все элементы рисования во фрагменте будут отображаться в одном и том же автоматически созданномFigureто жеAxesначальство.

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

4. Сохранить сохранить

fig.savefig('D:\\test.jpg')

FigureизsavefigМетод может сохранить изображение по указанному пути или вызватьpltСтатический метод сохранения, но должен выполняться с кодом рисования и должен находиться вshowметод выполняется раньше.

Изображение, отображаемое непосредственно при щелчке правой кнопкой мыши в ipython, также имеет возможность сохранения.

2. Настройки рисования

Назад к содержанию

1. Проекция

projectionПараметры используются для установки сгенерированногоAxesвведитеadd_axes,add_subplotможно использовать в других методах.

Несколько часто используемых типов:'rectilinear': Линейная ось координат, то есть 2-я ось координат xy, значение по умолчанию;'3d': ось координат 3D xyz, она будет использоваться для рисования 3D-изображений. Обратите внимание, что вы должны импортировать этот тип перед его использованием.Axes3D;'polar': Ось полярных координат.

2. Шрифт

plt.rcParams['font.sans-serif']Свойство используется для установки шрифта по умолчанию.При возникновении проблемы с отображением китайского языка на изображении шрифт может быть установлен на шрифт, который поддерживает китайский язык через этот элемент, например['SimHei']черное тело;plt.rcParams['font.size']Свойство используется для установки размера шрифта по умолчанию.

Также возможно применять шрифты только к конкретному тексту,fontsizeПараметр устанавливает размер шрифта,fontpropertiesпараметр для установки шрифта, вsuptitle,set_title,textи т. д. можно использовать в методе, используемом для определения текстового дисплея.

Если знак минус не может отображаться нормально, установитеplt.rcParams['axes.unicode_minus']=False.

3. цвет

И многое другоеcolorилиcolorsпараметр задает цвет тела или последовательность цветов, сокращенноc, так же есть параметры для установки определенной части цвета отдельно:facecolorустановить цвет заливки, сокращениеfc;edgecolorустановить цвет края, сокращениеec.

Поддерживается несколько способов определения цвета: (1).tupleПредставленное значение RGB или RGBA, диапазон значений 0.~1., например(0.1,0.2,0.5); (2).strУказывает шестнадцатеричное значение RGB или RGBA, например, в диапазоне от 00 до FF.'#0F0F0F'; (3).strЦветная этикетка указана, пожалуйста, обратитесь к следующему рисунку (Официальный пример).

В дополнение к одному цвету, matplotlib также предоставляет палитру, представляющую собой набор цветов для определенной темы, как правило, черезcmapнастройки параметров, в то время как предопределенная карта цветов находится вplt.cmДоступные типы см. нижеофициальная документация.

4. Название

Figure.suptitleилиplt.suptitleметод используется для установки общего заголовка;Axes.set_titleилиplt.titleметод и создатьAxesвремяtitleПараметры используются для установки субтитров.

5. Координатная ось

xlabel,ylabel,zlabelи другие способы используются для установки метки оси координат;xticks,yticks,zticksи другие методы используются для задания масштаба оси координат.Входящие параметры - список значений масштаба и список меток шкалы.Второй параметр можно не указывать, а значение масштаба будет использоваться как текст метки ;xlim,ylim,zlimи другие методы используются для установки диапазона оси координат, а входными параметрами являются начальное значение и конечное значение;

axis('off')Отображение осей можно отключить; Все вышеперечисленные методы могут бытьAxesилиpltперечислить.

6. Легенда легенда

plt.plot(x,y1,label='sin')
plt.plot(x,y2,label='cos')
plt.legend()
plt.show()

legendМетод используется для отображения легенды.Элемент чертежа должен иметь метку для нормального формирования легенды.Его можно передать при отрисовке изображения.labelметка настройки параметров или вызовlegendметод для передачи списка тегов.locПараметр задает положение легенды, по умолчанию'best'добровольно подобрать.

7. Маркер в виде маркера

параметрmarkerустановить стиль маркера, необязательная ссылка на стильОфициальная документация-маркеры; параметрsилиmarkersizeУстановите размер маркера.

Стили маркеров можно задавать на точечных диаграммах, графиках и т. д.

8. Стиль линии

параметрlinestyleУстановите стиль линии, как правило, по умолчанию'-'Сплошная линия, дополнительные стили см. в таблице ниже; параметрlinewidthустановить ширину линии, сокращенноlw.

linestyle инструкция
'-' or 'solid' Сплошная линия
'--' or 'dashed' пунктирная линия
'-.' or 'dashdot' Пунктирная линия
':' or 'dotted' пунктирная линия
'None' or '' не рисуй

Стили линий можно задавать почти для всех объектов чертежа, содержащих линии.

9. Прозрачность альфа

параметрalphaУстановите прозрачность точки, как правило, по умолчанию1., чем меньше значение, тем выше прозрачность.

Прозрачность можно задать практически для всех объектов чертежа, содержащих плоскости.

10. Вращение

Вращение элементов чертежа

fig=plt.figure(figsize=(4.5,3))
ax=fig.add_axes((0,0,1,1))
ax.plot(x,y1)
for tick in ax.get_xticklabels():
    tick.set_rotation(90)

Некоторые элементы чертежа поддерживают вращение, доступ к которому можно получить черезset_rotationМетод задается или создается путем передачиrotationнастройка параметров, также черезangleПараметр управляет вращением.

Вращение 3D-изображения

fig=plt.figure(figsize=(12,3))
ax=fig.add_subplot(131,title='ax1',projection='3d')
ax.plot(x,y1)
ax=fig.add_subplot(132,title='ax2',projection='3d')
ax.view_init(30,80)
ax.plot(x,y1)
ax=fig.add_subplot(133,title='ax3',projection='3d')
ax.view_init(60,120)
ax.plot(x,y1)

Axes3Dвращение черезview_initРеализация метода, первый параметрelevУправляет вертикальным углом поворота, значение по умолчанию 30, второй параметрazimУправляет горизонтальным углом поворота, значение по умолчанию — 120.

11. Настройка макета подкарты

#自动收缩布局
fig.tight_layout()
#调整子图分布
fig.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, wspace=0.1, hspace=0.1)

3. Распространенные типы рисунков

Назад к содержанию

1. Диаграмма рассеяния

n = 100
x = np.random.randn(n)
y = np.random.randn(n)
z = np.random.randn(n)

fig=plt.figure(figsize=(9,3))
ax=fig.add_subplot(121,title='2d scatter')
ax.scatter(x,y,s=100,c=['g','r','y'],marker='*',alpha=0.5,linewidths=1,edgecolor='k')
ax=fig.add_subplot(122,title='3d scatter',projection='3d')
ax.scatter(x,y,z)
plt.show()

scatterМетод используется для построения диаграммы рассеяния: параметрsУстановить размер (площадь) точки, по умолчанию20; параметрcУстановите цвет точки, он может быть одиночным или множественным, по умолчанию'b'синий; параметрmarkerстиль установки точки, по умолчанию'o'круглый; параметрalphaпрозрачность уставки, по умолчанию1., чем меньше значение, тем выше прозрачность; параметрlinewidthsУстановите ширину линии края, по умолчаниюNone; параметрedgecolorУстановите цвет линии края, по умолчаниюNone.

2. График

n = 100
x = np.arange(0,8*n,8)
y = np.sin(x*np.pi/180)
z = np.cos(x*np.pi/180)

fig=plt.figure(figsize=(9,3))
ax=fig.add_subplot(121,title='2d plot')
ax.plot(x,y,'g<-',alpha=0.5,linewidth=2, markersize=8)
ax=fig.add_subplot(122,title='3d plot',projection='3d')
ax.plot(x,y,z)
plt.show()

plotМетод используется для построения диаграммы рассеяния: параметрfmtУстановить общий стиль, сразу после параметра координаты, даc,marker,linestyleИнтеграция трех параметров используется для быстрой настройки, или вы можете установить эти три параметра по отдельности; параметрcУстановите цвет линий и маркеров, может быть только один цвет, по умолчанию'b'синий; параметрmarkerустановить стиль маркера, по умолчаниюNone; параметрlinestyleустановить стиль линии, по умолчанию'-'Сплошная линия; параметрalphaпрозрачность уставки, по умолчанию1., чем меньше значение, тем выше прозрачность; параметрlinewidthустановить ширину линии; параметрmarkersizeУстанавливает размер маркера.

3. Поверхностный участок

#曲面图
n = 480
x = np.arange(n)
y = np.arange(n)
x,y = np.meshgrid(x,y)
z = np.cos(x*np.pi/180)+np.sin(y*np.pi/180)

fig=plt.figure()
ax=fig.add_subplot(111,title='3d surface',projection='3d')
ax.plot_surface(x,y,z,rstride=10,cstride=10,cmap=plt.cm.winter)
plt.show()

plot_surfaceМетод используется для построения графика поверхности: параметрrstrideиcstrideУстановите размер шага выборки в направлениях осей X и Y, и выборочные данные будут использоваться для рисования поверхности.Чем меньше значение, тем выше точность выборки, тем четче рисуемое изображение и тем больше время рисования.rcountиccountНесовместимые параметры; параметрrcountиccountУстановите общее количество выборок в направлениях осей x и y, по умолчанию 50; параметрcmapУстановите набор цветов поверхности, должен бытьcolormap, синий монохромный градиент по умолчанию; параметрalphaУстановите прозрачность точки, по умолчанию 1., чем меньше значение, тем выше прозрачность.

Чтобы нарисовать график поверхности, вам нужно построить данные сетки на плоскости xy и соответствующее значение Z. Вы можете использовать numpymgridиндексатор илиmeshgridреализация метода.

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

x = np.array([1,2,3,4])
y1 = np.array([4,3,3,1])
y2 = np.array([2,5,1,3])
tick_label = ['a','b','c','d']

fig=plt.figure(figsize=(10,3))
ax=fig.add_subplot(131,title='2d bar')
ax.bar(x+0.15,y1,width=0.3,color='y',label='y1',alpha=0.7, tick_label=tick_label)
ax.bar(x-0.15,y2,width=0.3,color='g',label='y2',alpha=0.7, tick_label=tick_label)
ax.legend()

ax=fig.add_subplot(132,title='2d bar in 3d axes',projection='3d')
ax.bar(x,y1,0,'y',label='y1',edgecolor='k',linewidth=1)
ax.bar(x,y2,1,'y',label='y2',edgecolor='k',linewidth=1)
ax.legend(facecolor='none')

ax=fig.add_subplot(133,title='3d bar',projection='3d')
bar3d1=ax.bar3d(x,0,0,0.5,0.25,y1,label='y1')
bar3d2=ax.bar3d(x,1,0,0.5,0.25,y2,label='y2')
bar3d1._facecolors2d=bar3d1._facecolors3d
bar3d1._edgecolors2d=bar3d1._edgecolors3d
bar3d2._facecolors2d=bar3d2._facecolors3d
bar3d2._edgecolors2d=bar3d2._edgecolors3d
ax.legend()
plt.show()

barметод используется для рисования гистограмм (для горизонтальных гистограмм используйтеbarh):

2D

первый параметрx- абсцисса стержня, база для выравнивания задаетсяalignНастройки параметров, по умолчанию выравнивание по центру; второй параметрheightустановить высоту бара; третий параметрwidthустановить ширину полосы; четвертый параметрbottomУстановить начальную вертикальную координату нижней части бара, по умолчанию 0; параметрcolorустановить цвет полос; параметрtick_labelУстановите метки деления абсцисс; параметрedge_colorиlinewidthУстановите цвет и толщину краевых линий; параметрlabelУстановите метку категории для этого рисунка; параметрalphaУстановите прозрачность точки, по умолчанию 1., чем меньше значение, тем выше прозрачность.

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

2D in Axes3D

первый параметрleftУстановите начальную абсциссу полосы, что эквивалентно настройке в 2dalign='edge'; второй параметрheightУстановите высоту бара, как в случае 2d; третий параметрzsУстановите значение оси Z; четвертый параметрzdirУстановите ось как ось Z, по умолчанию'z'; Остальные параметры расширения такие же, как у 2d.

3D

1-й, 2-й, 3-й параметрx,y,zЗадайте координаты положения бара; 4-й, 5-й, 6-й параметрыdx,dy,dzУстановите длину, ширину и высоту полосы; Остальные параметры расширения такие же, как у 2d.

Трехмерная линейчатая диаграмма должна быть легендой, когда ее нужно отобразить._facecolors2d,_edgecolors2dНазначение, так как легенда генерируется с использованием настроек цвета 2d, это должно быть ошибкой.

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

x = np.random.randn(1000)
y = np.random.randn(1000)

fig=plt.figure(figsize=(9,3))
ax=fig.add_subplot(121,title='hist')
result1=ax.hist(x,bins=20,color="g",edgecolor="k",alpha=0.5,density=True)
ax=fig.add_subplot(122,title='hist2d')
result2=ax.hist2d(x,y,bins=20)
plt.show()

histМетод используется для построения гистограммы: 1-й параметрxУстановите данные для подсчета,yДанные оси - это статистическая частота, и автоматический расчет не нужно устанавливать самостоятельно; 2-й параметрbinsУстановите количество бинов, то есть сколько равных интервалов разбивается на статистические интервалы, по умолчанию 10; параметрcolorилиfacecolorустановить цвет полос; параметрedgecolorУстановите цвет линии края; параметрdensityУстановите, следует ли нормализовать, False для подсчета частоты, True для подсчета плотности вероятности, по умолчанию — False; параметрalphaУстановите прозрачность точки, по умолчанию 1., чем меньше значение, тем выше прозрачность.

hist2dМетод используется для построения двумерной гистограммы: 1-й и 2-й параметрыx,yУстановите данные для подсчета, а статистическая частота на двумерной гистограмме представлена ​​​​цветом; 3-й параметрbinsУстановите количество бинов, то есть, сколько равноотстоящих статистических интервалов нужно разделить, по умолчанию 10,x,yможно установить отдельно; параметрcmapУстановить набор цветов.

После вызова метода рисования вы получите возвращаемое значение: частоту и статистический результат частоты.

6. Круговая/кольцевая диаграмма

x1 = np.array([1,2,3,4])
x1_labels = ['a','b','c','d']
x1_explode = [0.2,0,0,0]
x2 = np.array([2,2,1,5])

fig=plt.figure(figsize=(9,4))
ax=fig.add_subplot(121,title='pie')
ax.pie(x1,explode=x1_explode,labels=x1_labels,shadow=True,autopct='%1.1f%%')
ax=fig.add_subplot(122,title='ring')
ax.pie(x1,radius=1,wedgeprops=dict(width=0.3, edgecolor='w'))
ax.pie(x2,radius=0.7,wedgeprops=dict(width=0.3, edgecolor='w'))
plt.show()

pieМетод используется для построения круговой диаграммы: первый параметрxУстановите пропорцию каждого сектора, он автоматически рассчитает x/sum(x) и применит его к рисунку, но когда sum(x)explodeУстановите расстояние от центра каждого сектора, по умолчанию нет; третий параметрlabelsУстановить метку каждого сектора; четвертый параметрcolorsУстановите последовательность цветов, цвета в последовательности будут использоваться по очереди при рисовании сектора; параметрshadowУстановите, рисовать ли тени, по умолчанию False; параметрlabeldistanceУстановите расстояние между меткой веера и центром; параметрradiusУстановить радиус сектора, по умолчанию 1; параметрautopctУстановите информацию, отображаемую на секторе, которая может быть строковым форматом или функцией; параметрwedgepropsУстановить стиль сектора, гдеwidthэто ширина, сradiusКогда они согласуются, рисуется круговая диаграмма, которая меньшеradiusкольцевой граф,edgecolorиlinewidthВы можете установить цвет и ширину линии края; параметрcenterУстановите центр круговой диаграммы, по умолчанию (0,0).

7. Блочные диаграммы

def test_data():
    spread = np.random.rand(50)
    center = np.ones(25) * 0.5
    flier_high = np.random.rand(10)+1
    flier_low = np.random.rand(10)-1
    return np.r_[spread,center,flier_high,flier_low]

x1 = test_data()
x2 = test_data()

fig=plt.figure()
ax=fig.add_subplot(111,title='box')
ax.boxplot([x1,x2],labels=['x1','x2'],widths=0.3)
plt.show()

boxplotМетод используется для рисования коробчатой ​​диаграммы: первый параметрxУстановить данные для рисования, при наличии нескольких групп их можно передать списком; параметрlabelsУстановите метку категории для каждого набора данных; параметрwidthЗадайте ширину графики.

8. Контурная карта

x = np.arange(-3,3,0.01)
y = np.arange(-3,3,0.01)
x,y = np.meshgrid(x,y)
z = (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)+1

fig=plt.figure(figsize=(13.5,3))
ax=fig.add_subplot(131,title='2d contourf')
c=ax.contour(x,y,z,colors='k',linewidths=0.5)
ax.clabel(c,fontsize=10)
cf=ax.contourf(x,y,z,cmap='YlOrRd')
cbar=fig.colorbar(cf)

ax=fig.add_subplot(132,title='3d contourf',projection='3d')
ax.contourf(x,y,z,cmap='YlOrRd')
ax.contour(x,y,z,colors='k',linewidths=0.2)

ax=fig.add_subplot(133,title='3d surface with contour',projection='3d')
ax.plot_surface(x,y,z,cmap='YlOrRd',alpha=0.7)
ax.contour(x,y,z,colors='k',linewidths=1)
plt.show()

contourМетод используется для построения контурного графика: 1-й, 2-й, 3-й параметрx,y,zустановить данные для построения,zвысота; 4-й параметрlevelsУстановите количество контурных линий; параметрcolorsУстановите цветовую последовательность, используемую контурами; параметрlinewidthsУстановить последовательность ширины контурных линий; параметрlinestylesЗадает последовательность стилей для горизонталей.

contourfметод используется для заполнения контурного графика: 1-й, 2-й, 3-й параметрx,y,zустановить данные для построения,zвысота; 4-й параметрlevelsУстановите количество контурных линий; параметрcmapустановить набор цветов, используемый для заливки; параметрalphaУстановите прозрачность точки, по умолчанию 1., чем меньше значение, тем выше прозрачность.

clabelМетод используется для установки меток контура;colorbarметод используется для установки эталонной цветовой полосы;

9. Полярные участки

theta=np.linspace(0,2*np.pi,100)

fig=plt.figure(figsize=(10,5))
ax=fig.add_subplot(121,title='polar1',projection='polar')
ax.plot(theta,theta,c='b',lw=2)
ax.set_rmax(theta.max())

ax=fig.add_subplot(122,title='polar2',projection='polar')
ax.plot(theta,theta,c='r',lw=2)
ax.set_rmax(theta.max())
ax.set_rlabel_position(90)
ax.set_theta_offset(np.pi)
ax.set_thetagrids(np.arange(0,360,15))
ax.set_rticks(np.arange(0,6.5,0.5))
ax.set_theta_direction(-1)

установивprojection='polar'СоздайтеPolarAxesКоординатная ось, вы можете реализовать рисунок в полярных координатах:set_rmax,set_rmin,set_rlimМетод может установить максимальное значение, минимальное значение и диапазон полярного диаметра соответственно;set_rlabel_positionМетод задает положение метки полярного диаметра, выраженное в градусах;set_theta_offsetМетод задает смещение угла, выраженное в радианах;set_thetagridsМетод устанавливает последовательность угловой шкалы, которая влияет на линии сетки;set_rticksМетод устанавливает последовательность полярной шкалы, которая будет влиять на линии сетки;set_theta_directionспособ задать направление углового роста.

вызовplotПри нанесении другими способами исходныйxиyСоответственно углу и полярному диаметру.

4. Другие элементы рисования

Назад к содержанию

1. Аннотировать

fig=plt.figure(figsize=(10,3.5))
ax=fig.add_subplot(121,title='annotate')
ax.scatter([-0.25],[-0.25],s=100)
ax.set_xlim([-1,1])
ax.set_ylim([-1,1])

bbox_style = dict(boxstyle="square", fc='white', ec='black',lw=1)
arrow_style = dict(arrowstyle='->',color='black',lw=2)
ax.annotate('This is a dot.',(-0.24,-0.24),(-0.14,0.16),
            arrowprops=arrow_style,bbox=bbox_style,fontsize=15)

ax=fig.add_subplot(122,title='arrow+text')
ax.scatter([-0.25],[-0.25],s=100)
ax.set_xlim([-1,1])
ax.set_ylim([-1,1])

ax.arrow(0.09,0.06,-0.25,-0.23,fc='k',ec='k',
         width=0.01,head_width=0.07,head_length=0.07)
ax.text(-0.14,0.16,'This is a dot.',fontsize=15,bbox=bbox_style)

annotateМетоды используются для добавления аннотаций к изображениям: первый параметрsустановить текст заметки; второй параметрxyУстановите положение точки для аннотирования,tupleкоординаты, представленные типом; третий параметрxytextустановить положение текста заметки,tupleкоординаты, представленные типом; параметрxycoordsиtextcoordsУстановите систему координат, используемую положением точки аннотации и положением текста, по умолчанию'data'В соответствии с системой координат данных; параметрarrowpropsустановить стрелки,dictтип, гдеarrowstyleстиль набора свойств,colorцвет набора свойств,lwсвойство устанавливает ширину стрелки; Конкретную информацию о трех вышеуказанных параметрах см.Официальная документация - Аннотировать; параметрbboxустановить стиль текстового поля,dictтип, гдеboxstyleстиль набора свойств,fcсвойство устанавливает цвет заливки,ecсвойство задает цвет края,lwСвойство задает ширину линии края;bboxПодробные настройки предложены в справочникеОфициальная документация — Прямоугольник; параметрfontsizeУстановите размер шрифта.

Аннотации также могут бытьarrow+textвыполнить.

arrowспособ добавления стрелок: 1-й и 2-й параметрыx,yУстановите начальную позицию стрелки; 3-й и 4-й параметрыdx,dyУстановите длину стрелки, идущей в направлении xy;fcПараметр задает цвет заливки;ecПараметр задает цвет края;widthПараметр задает ширину линии стрелки;head_widthПараметр устанавливает ширину наконечника стрелки;head_lengthПараметр устанавливает длину наконечника стрелки.

textспособ добавления текста: 1-й и 2-й параметрыx,yустановить положение текста; 3-й параметрsустановить текст для отображения; параметрfontsizeустановить размер шрифта; параметрbboxУстановите стиль текстового поля с помощьюannotateтакой же.

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

2. Заполнение области

x=np.arange(0,720,1)
y1=np.sin(x*np.pi/180)
y2=np.cos(x*np.pi/180)

fig=plt.figure(figsize=(10,3.5))
ax=fig.add_subplot(121,title='fill')
ax.plot(x,y1)
ax.plot(x,y2)
ax.fill(x,y1,color='g',alpha=0.3)
ax.fill(x,y2,color='b',alpha=0.3)

ax=fig.add_subplot(122,title='fill between')
ax.plot(x,y1)
ax.plot(x,y2)
ax.fill_between(x,y1,y2,color='g',alpha=0.3)

fillспособ заполнения полигона: 1-й и 2-й параметрыx,yУстановите xy координаты ребра.Этот метод рисования не подходит для заполнения незамкнутых кривых, и появится непредсказуемый эффект рисования, как показано выше.

fill_betweenМетод используется для заполнения области между двумя кривыми: 1-й, 2-й, 3-й параметрx,y1,y2Установите координату x и координату y двух кривых; 4-й параметрwhereУстановите диапазон абсцисс для рисования, тип массива Boolean, что эквивалентно выполнению индексной фильтрации по первым трем параметрам.

3. изображение

from PIL import Image
image1=Image.open('D:\\training_data\\used\\cifar-10-batches-py\\test\\1_猫.png')
image2=Image.open('D:\\training_data\\used\\cifar-10-batches-py\\test\\2_船.png')

fig=plt.figure(figsize=(8,4))
ax=fig.add_subplot(121,title='image1')
ax.imshow(image1)
ax=fig.add_subplot(122,title='image2')
ax.imshow(image2)

imshowИспользуется для отображения изображений, по умолчанию будет отображаться ось координат и масштаб.Axes.axis('off')закрытие.

4. Базовый графический патч

import matplotlib.patches as patches
from matplotlib.collections import PatchCollection

fig=plt.figure(figsize=(9,3))

ax=fig.add_subplot(121,title='Rectangle')
rects=[]
x=[1.5,3.5,5.5,]
y=[3,4.5,3]
for i in range(3):
    rect=patches.Rectangle((x[i],y[i]),3,3)
    rects.append(rect)
pc=PatchCollection(rects,linewidth=1,edgecolor='r',facecolor='none')
#ax.add_patch(rect)
ax.add_collection(pc)
ax.set_xlim([0,10])
ax.set_ylim([0,10])

ax=fig.add_subplot(122,title='Ellipse')
ells=[]
for i in range(5):
    ell=patches.Ellipse((5,5),6,3,angle=i*36)
    ells.append(ell)
pc=PatchCollection(ells,facecolor='g',alpha=0.5)
#ax.add_patch(ell)
ax.add_collection(pc)
ax.set_xlim([0,10])
ax.set_ylim([0,10])

Необходимо импортировать базовую графику и соответствующие коллекции.patchesиPatchCollection.

patchesПредусмотрены различные построения графов:Rectangleкласс прямоугольника, первый параметрxyЗадайте координаты вершины нижнего левого угла, второй и третий параметрыwidth,heightУстановить ширину и высоту, 4-й параметрangleустановить угол поворота;Ellipseкласс эллипса, первый параметрxyЗадайте координаты центра эллипса, второй и третий параметрыwidth,heightЗадайте длину (диаметр) горизонтальной и вертикальной осей, четвертый параметрangleУстановите угол поворота.

PatchCollectionдля строительстваpatchesСоберите и задайте общие параметры расширения:linewidthПараметр задает ширину линии края;edgecolorПараметр задает цвет края;facecolorПараметр задает цвет заливки,facecolor='none'Может быть установлено, чтобы не заполнять (при создании графического класса,fill=FalseЕго также можно установить не заполняемым);alphaПараметр устанавливает прозрачность.

add_patchиспользовал кAxesДобавьте один рисунок в;add_collectionиспользовал кAxesДобавить коллекцию графики;Axes.patchesможет просматриватьAxesвсе подPatchобъект рисования;Axes.collectionsможет просматриватьAxesВсе коллекции рисунков под.

5. Таблица таблицы данных

data=np.array([[1,2,3],[4,5,6],[7,8,9]])
row_labels=['row1','row2','row3']
row_colors=plt.cm.BuPu(np.linspace(0, 0.5, len(row_labels)))
col_labels=['col1','col2','col3']
col_index=np.arange(3)

fig=plt.figure()
ax=fig.add_subplot(111,title='table')
for i in range(len(row_labels)-1,-1,-1):
    ax.bar(col_index,data[i],color=row_colors[i],linewidth=0.5,edgecolor='k')
ax.table(cellText=data,
         rowLabels=row_labels,
         rowColours=row_colors,
         colLabels=col_labels,
         loc='bottom')
ax.set_xticks([])

tableМетод используется для добавления таблицы:cellTextПараметры задают данные ячейки, тип двумерного ряда, по умолчаниюNone;cellColorsПараметры задают цвет ячейки, тип 2D-последовательности, по умолчаниюNone;cellTextиcellColorsПо крайней мере одному из двух параметров должно быть присвоено значение;cellLocПараметр задает позицию ячейки, по умолчанию'right';colWidthsПараметры задают ширину столбца, тип одномерной последовательности, опционально;rowLabelsМетка строки настройки параметров, тип одномерной последовательности, необязательно;rowColorsПараметр задает цвет метки строки, тип одномерной последовательности, необязательный;rowLocПараметр задает положение метки строки, по умолчанию'left';colLabelsМетка столбца настройки параметров, тип одномерной последовательности, необязательный;colColorsПараметр задает цвет метки столбца, тип одномерной последовательности, необязательный;colLocПараметр задает положение метки столбца, по умолчанию'center';locПоложение таблицы настройки параметров, по умолчаниюbottom;bboxПараметр задает стиль блока, необязательный.

Более подробные настройки можно создать самостоятельноTableобъект, черезAxes.add_tableдобавить метод;Axes.tablesможет просматриватьAxesвсе подTableобъект рисования.