Дата последнего обновления: 20.04.2019
Matplotlib — это библиотека 2D-чертежей для Python, которая создает графику издательского качества в различных печатных форматах и кросс-платформенной интерактивной среде.
При необходимости импортируйте следующие модули:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
Нажмите на ссылки ниже, чтобы перейти к каждому разделу
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
объект рисования.