Построить график функции модуль: Графики функций с модулем

Mathway | Популярные задачи

1Найти точное значениеsin(30)
2Найти точное значениеsin(45)
3Найти точное значениеsin(30 град. )
4Найти точное значениеsin(60 град. )
5Найти точное значениеtan(30 град. )
6Найти точное значениеarcsin(-1)
7Найти точное значениеsin(pi/6)
8
Найти точное значение
cos(pi/4)
9Найти точное значениеsin(45 град. )
10Найти точное значениеsin(pi/3)
11Найти точное значениеarctan(-1)
12Найти точное значениеcos(45 град. )
13Найти точное значениеcos(30 град. )
14Найти точное значениеtan(60)
15
Найти точное значение
csc(45 град. )
16Найти точное значениеtan(60 град. )
17Найти точное значениеsec(30 град. )
18Найти точное значениеcos(60 град. )
19Найти точное значениеcos(150)
20Найти точное значениеsin(60)
21Найти точное значениеcos(pi/2)
22Найти точное значениеtan(45 град. )
23Найти точное значениеarctan(- квадратный корень из 3)
24Найти точное значениеcsc(60 град. )
25Найти точное значениеsec(45 град. )
26Найти точное значениеcsc(30 град. )
27Найти точное значениеsin(0)
28Найти точное значениеsin(120)
29Найти точное значениеcos(90)
30Преобразовать из радианов в градусыpi/3
31Найти точное значениеtan(30)
32Преобразовать из градусов в радианы45
33Найти точное значениеcos(45)
34Упроститьsin(theta)^2+cos(theta)^2
35Преобразовать из радианов в градусыpi/6
36Найти точное значениеcot(30 град. )
37Найти точное значениеarccos(-1)
38Найти точное значениеarctan(0)
39Найти точное значениеcot(60 град. )
40Преобразовать из градусов в радианы30
41Преобразовать из радианов в градусы(2pi)/3
42Найти точное значениеsin((5pi)/3)
43Найти точное значениеsin((3pi)/4)
44Найти точное значениеtan(pi/2)
45Найти точное значениеsin(300)
46Найти точное значениеcos(30)
47Найти точное значениеcos(60)
48Найти точное значениеcos(0)
49Найти точное значениеcos(135)
50Найти точное значениеcos((5pi)/3)
51Найти точное значениеcos(210)
52Найти точное значениеsec(60 град. )
53Найти точное значениеsin(300 град. )
54Преобразовать из градусов в радианы135
55Преобразовать из градусов в радианы150
56Преобразовать из радианов в градусы(5pi)/6
57Преобразовать из радианов в градусы(5pi)/3
58Преобразовать из градусов в радианы89 град.
59Преобразовать из градусов в радианы60
60Найти точное значениеsin(135 град. )
61Найти точное значениеsin(150)
62Найти точное значениеsin(240 град. )
63Найти точное значениеcot(45 град. )
64Преобразовать из радианов в градусы(5pi)/4
65Найти точное значениеsin(225)
66Найти точное значениеsin(240)
67Найти точное значениеcos(150 град. )
68Найти точное значениеtan(45)
69Вычислитьsin(30 град. )
70Найти точное значениеsec(0)
71Найти точное значениеcos((5pi)/6)
72Найти точное значениеcsc(30)
73Найти точное значениеarcsin(( квадратный корень из 2)/2)
74Найти точное значениеtan((5pi)/3)
75Найти точное значениеtan(0)
76Вычислитьsin(60 град. )
77Найти точное значениеarctan(-( квадратный корень из 3)/3)
78Преобразовать из радианов в градусы(3pi)/4
79Найти точное значениеsin((7pi)/4)
80Найти точное значениеarcsin(-1/2)
81Найти точное значениеsin((4pi)/3)
82Найти точное значениеcsc(45)
83Упроститьarctan( квадратный корень из 3)
84Найти точное значениеsin(135)
85Найти точное значениеsin(105)
86Найти точное значениеsin(150 град. )
87Найти точное значениеsin((2pi)/3)
88Найти точное значение tan((2pi)/3)
89Преобразовать из радианов в градусыpi/4
90Найти точное значениеsin(pi/2)
91Найти точное значениеsec(45)
92Найти точное значениеcos((5pi)/4)
93Найти точное значениеcos((7pi)/6)
94Найти точное значениеarcsin(0)
95Найти точное значение
sin(120 град. )
96Найти точное значениеtan((7pi)/6)
97Найти точное значениеcos(270)
98Найти точное значениеsin((7pi)/6)
99Найти точное значениеarcsin(-( квадратный корень из 2)/2)
100Преобразовать из градусов в радианы88 град.

графики функций, содержащих знак модуля доклад, проект

Слайд 1
Текст слайда:

Графики функций, содержащих знак модуля  

Сутормина Надежда Петровна,
учитель математики МБОУ «СОШ №24»,
г. Кемерово


Слайд 2
Текст слайда:

Понятие «модуль» широко применяется во многих разделах школьного курса математики, например, в изучении абсолютной и относительной погрешностей приближенного числа; в геометрии и физике будут изучаться понятия вектора и его длины (модуля вектора). Понятия модуля применяется в курсах высшей математики, физики и технических наук, изучаемых в высших учебных заведениях.
Слово «модуль» произошло от латинского слова «modulus», что в переводе означает «мера». Это слово имеет множество значений и применяется не только в математике, физике и технике, но и в архитектуре, программировании и других точных науках.
Считают, что термин предложил использовать Котс, ученик Ньютона. Знак модуля был введен в XIX веке Вейерштрассом.

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


Слайд 3

Слайд 4
Текст слайда:

Метод промежутков

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


Слайд 5
Текст слайда:

Построим график функции


Слайд 6
Текст слайда:

Построив график для каждого промежутка, получаем график функции


Слайд 7
Текст слайда:

Этот способ удобен для построения графиков вида:

3) у = | х – 1 | + | х – 2 | + | х – 3 |


Слайд 8
Текст слайда:

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


Слайд 9
Текст слайда:

Построение графика функции у=|f(х)|

Чтобы построить график данной функции, надо сначала построить график функции у=f(х), затем участки графика, лежащие выше оси абсцисс, оставить без изменения, а участки, лежащие ниже оси абсцисс стереть, предварительно отразив симметрично относительно оси абсцисс.


Слайд 10
Текст слайда:

Построить график функции у = |х — 1|.
1. построим у=х-1
2. участки графика, лежащие выше оси абсцисс, оставить без изменения, а участки, лежащие ниже оси абсцисс стереть, предварительно отразив симметрично относительно оси абсцисс.


Слайд 11

Слайд 12
Текст слайда:

Построить график функции 
1.Сначала изобразим график линейной функции 
2.

 


Слайд 13
Текст слайда:

Построить график функции y=||1-x2|-3|. Построим график функции y=1-x2 и применим к нему операцию «модуль» (часть графика, расположенная ниже оси OX симметрично отражается относительно оси OX).


Слайд 14
Текст слайда:

Выполним сдвиг графика вниз на 3.


Слайд 15
Текст слайда:

Применим операцию «модуль» и получим окончательный график функции y=||1-x2|-3|


Слайд 16
Текст слайда:

Построение графика функции у=f(|х|)

Чтобы построить график этой функции надо сначала построить график функции у=f(х), затем часть графика, расположенную левее оси у удалить, а часть графика, расположенную правее оси у, отобразить симметрично относительно этой оси.


Слайд 17
Текст слайда:

у = 5| х |.
cтроим график функции у = 5х, часть графика, лежащую левее оси ординат удаляем, оставшуюся симметрично отображаем относительно оси ординат
 


Слайд 18
Текст слайда:

Построить график функции 


Слайд 19
Текст слайда:

и будем рассматривать только ту его часть, которая расположена правее оси ОУ. Остальное сотрём. Оставшуюся часть отобразим симметрично, относительно ох


Слайд 20
Текст слайда:

Применяя различные преобразования графиков, постройте график функции . Заменим


Слайд 21

Слайд 22
Текст слайда:

Построение графика уравнения | у|=f(х)

Построить график функции у=f(х)
Убрать ту часть графика, которая ниже оси х
Оставшуюся часть графика отобразить симметрично относительно оси х, но не стирать.


Слайд 23
Текст слайда:

Построить график уравнения |у|= х -4х+3
а) построим график функции у= х -4х+3
б) уберем ту часть графика, которая ниже оси х
в) оставшуюся часть графика отобразим симметрично относительно оси х, но стирать не будем.


Слайд 24
Текст слайда:

|у|=|f(х)|

Построить у=|f(х)|
Отобразить симметрично относительно оси х
Построить график уравнения |у|=|х+2|
а) построим у=|х+2|
б) отобразим симметрично относительно оси х


Слайд 25

Слайд 26
Текст слайда:

Задача из пособия “Математика. ОГЭ 2015.
Постройте график функции . Найдите все значения p, при которых прямая имеет с графиком данной функции 2 общие точки.
Область определения
Раскрываем модуль. Тогда в правой полуплоскости
имеем , в левой полуплоскости .
Функция представляет собой прямую , которую
можно двигать вверх-вниз на p единиц. Построим график заданной функции и подвигаем по нему прямую :

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


Слайд 27

Слайд 28

Слайд 29

Слайд 30
Текст слайда:

Не стоит забывать, что модуль- это расстояние между точками.
Решить уравнение .
Решение:
На равном расстоянии от точек -6 и 2 лежит единственная точка — середина отрезка , т. е. х=-2. Это и есть единственный корень данного уравнения.


Слайд 31

Слайд 32

Слайд 33
Текст слайда:

Быстрое построение графиков, содержащих модуль так же необходимо при решении задания с параметрами ЕГЭ.


Слайд 34
Текст слайда:

[email protected]

Спасибо за внимание


Построение графиков функций содержащих знак модуля для учащихся гуманитарного презентация, доклад, проект

Слайд 1
Текст слайда:

Построение графиков функций содержащих знак модуля для учащихся гуманитарного класса.

Учитель математики
Восточной гимназии
Дудрова И. А.


Слайд 2
Текст слайда:

График функции у = |х|
а) Если х≥0, то |х| = х функция у = х, т.е. график
совпадает с биссектрисой первого координатного угла.
б) Если хзначениях аргумента х график данной функции – прямая
у = -х, т.е. биссектриса второго координатного угла.


Слайд 3
Текст слайда:

График функции у = — |х|
Получается симметричным отображением графика у = |х| относительно оси х.

у = — |х|


Слайд 4
Текст слайда:

График функции у=|х|+а получается параллельным переносом графика у=|х| в положительном направлении оси у на а единиц отрезка при а>0 и в отрицательном направлении на а единиц при а

График функции у = |х| + а

у = |х| + а

у = |х| — а

у = |х|


Слайд 5
Текст слайда:

График функции у=а|х| получается
растяжением графика у=|х| вдоль оси у в а раз при а>1 и
сжатием вдоль этой оси в 1\а раз при 0

График функции у = а|х|

у = а|х|

у = а|х|

у = |х|


Слайд 6
Текст слайда:

График функции у = |x+a| получается параллельным
переносом графика y=|x|
в отрицательном направлении от оси х на |а| при а>0 и
в положительном направлении на |a| при a

График функции у = |х+а|

— а

а

у = |х+а|

у = |х — а|

у = |х|


Слайд 7
Текст слайда:


Построить график функции у = х² — 4|х| + 3.
1 способ.
Раскрываем |х| = х при х≥0, получаем график у = х² — 4х + 3.
При х

Строим кусочно – заданную функцию по алгоритму:

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


Слайд 8

Слайд 9
Текст слайда:

2 способ.
Если рассмотрим график у = х² — 4х + 3 при х≥0 и
отобразить его относительно оси ОУ мы получим тот же
самый график.


Слайд 10
Текст слайда:

Для построения графика функции у = |f(х) | достаточно:
1.Построить график функции у = f(х) ;
2. На участках, где график расположен в нижней полуплоскости, т.е., где
f(х)


Слайд 11
Текст слайда:

Построить график функции у = |х² — х -6|

1.Построим график функции
у =х² — х -6

2. Участки графика, расположенные в нижней полуплоскости, отображаем симметрично относительно оси ОХ.


Слайд 12
Текст слайда:

Построить график функции у = |х + 3| + |2x + 1| — x
Строить график будем с помощью раскрытия модуля.

Алгоритм построения:
Приравняем каждое подмодульное выражение к нулю и находим точки, в которых подмодульные выражения, входящие в уравнение функции меняют знак.
Наносим эти точки на ось х и выделяем промежутки, в которых подмодульные выражения сохраняют знак.
Раскрываем модуль на каждом промежутке и получаем соответствующие уравнения функции.
Строим график на каждом промежутке.


Слайд 13
Текст слайда:

у = |х + 3| + |2x + 1| — x

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

Наносим точки на ось х:


Слайд 14
Текст слайда:

3. При


Слайд 15

Слайд 16
Текст слайда:

у = |х + 3| + |2x + 1| — x


Слайд 17
Текст слайда:

Построить график функции у = | 2|х | — 3|
1. Построить у = 2|х | — 3 , для 2 |х| — 3 > 0 , |х |>1,5 т.е. х1,5
а) у = 2х — 3 , для х>0
б) для х2. Построить у = -2 |х| + 3 , для 2|х | — 3 а)у = -2х + 3 , для х>0
б) для х


Слайд 18
Текст слайда:

у = | 2|х | — 3|
1) Построить у = 2х-3, для х>0.
2) Построить прямую, симметричную построенной относительно оси ОУ.
3) Участки графика, расположенные в нижней полуплоскости, отображаем симметрично относительно оси ОХ.
Сравнивая оба графика, видим что они одинаковые.


Слайд 19
Текст слайда:

у = | х² – 5|х| |
Построим у = х² – 5 х, для х>0. Вершина параболы в (2,5; -6,25)
Участки графика, расположенные в нижней полуплоскости, отображаем симметрично относительно оси ОХ.
3. Для х


Слайд 20
Текст слайда:

Найти корни уравнения ||x-2|-5| = 3. 

Выполняем построение первого (внутреннего) модуля y = |x-2|
Параллельно переносим линии вниз на 5, чтобы получить график функции y = |x-2|- 5
Отражаем все что находится ниже оси абсцисс. Это и будет искомая функция y=||x-2|-5|. Также выполняем построение прямой у=3


Слайд 21
Текст слайда:

Найти корни уравнения ||x-2|-5|=3. 

Нетрудно определить по графику, что решениями уравнения с модулями будут значения x = — 6; x = 0; x = 4; x = 10.


Слайд 22
Текст слайда:

Построить график функции у = | (|х| — 2) 2 – 3 |

Строим график функции у = (х — 2) 2 – 3
Совершаем преобразование: для этого часть графика, расположенную левее оси оу стираем.


Слайд 23
Текст слайда:

Построить график функции у = | (|х| — 2) 2 – 3 |

Часть графика, расположенную правее оси оу достраиваем симметрично относительно этой оси. Получаем график функции у = (|х| — 2) 2 – 3


Слайд 24
Текст слайда:

Построить график функции у = | (|х| — 2) 2 – 3 |

Часть графика, расположенную ниже оси ох отображаем симметрично относительно этой оси.


Слайд 25
Текст слайда:

График неравенства | у — 2х -1| + 2|х| ≤ 3

Задача. Изобразите на координатной плоскости множество решений неравенства.
Раскроем модули. Для этого каждое подмодульное выражение приравняем к нулю: у – 2х – 1 = 0; у = 2х + 1
х = 0
Подмодульные выражения меняют знак при переходе через прямые у = 2х + 1 и х = 0.


Слайд 26
Текст слайда:

Выводы:

Для построения графика функции у = f |(х)|:
1.Построить график функции у = f(х) для х>0;
2.Построить для х

Для построения графика функции у = | f(х) |
1.Построить график функции у = f(х) ;
2. На участках, где график расположен в нижней полуплоскости, т.е., где f(х)

Для построения графика функции у = | f |(х)| |
1. Построить график функции у = f(х) для х>0.
2. Строим вторую часть графика, т. е. построенный график симметрично отражаем относительно ОУ
3. Участки получившегося графика, расположенные в нижней полуплоскости, преобразовываем на верхнюю полуплоскость симметрично оси ОХ.


Слайд 27
Текст слайда:

у = f |(х)|

у =| f (х)|

у = |f |(х)||

у = f(х), х>0

Построить часть для хсимметричную
относительно
оси ОУ

у = f(х)

Часть графика, расположенного
в нижней полуплоскости
симметрично отобразить
относительно оси ОХ

Построить для хграфика, симметричную
построенной относительно
оси ОУ

у = f(х), х>0


Скачать презентацию

функция plot.modules — RDocumentation

Описание

Модульный стиль макета:

Визуализация графиков в модульном виде.

Использование

 

"сюжет"(x, layout.function=NULL,mod.list=NULL, module.function=FALSE, split.graph=7, color.random=FALSE, modules.color = NULL, col.grad=NULL, mod.edge. col=NULL, ed.color=NULL,edge.col.random=FALSE, выражение = NULL, exp.by.module=FALSE, tkplot=FALSE, layout.overall = NULL, sf=0,arrange.bydegree=ЛОЖЬ,mod.lab=ЛОЖЬ,node.lab=ЛОЖЬ, lab.cex = NULL, lab.color=NULL, lab.dist=NULL, v.size=FALSE, nodeset = NULL, path.col = "зеленый", col.s1 = "красный", col.s2 = "желтый", nodes.on.path=ИСТИНА,e.path.width=c(1,1), scale.module=NULL,v.sf=5,e.width=.5,bg="черный", abstract.graph=TRUE, modules.name.num = TRUE, v.size.path=TRUE,...)

Аргументы

x

x — это объект графа, созданный из матрицы смежности или из табличных данных двух столбцов с использованием функции graph() , доступной в igraph

is a function

layout. класс «функция» или вектор функций для построения макета каждого модуля с помощью функции в «layout.function».

mod.list

mod.list — это объект списка, который предоставляет модульную информацию о графе, каждый компонент mod. list содержит вектор узлов для построения.

module.function

— логическое значение для получения модулей в сети.

random

— это логическая переменная, если ‘mod.list’ имеет значение null, она выбирает узлы для модулей случайным образом.

split.graph

split.graph если random равно TRUE, то нет. модулей, которые граф должен быть разделен.

color.random

Если для этой опции установлено значение TRUE, модулям будут присвоены случайные цвета.

modules.color

Вектор цветов, который пользователь назначает цвет каждому модулю.

col.grad

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

mod.edge.col

— это вектор цвета для присвоения цвета края краям модулей.

ed.color

— масштабирование цвета и присвоение цвета краям между модулями.

edge.col.random

— это логическая переменная, которая случайным образом назначает цвета краям каждого модуля.

выражение

выражение представляет собой числовой вектор, который представляет свойства генов или белков, такие как средние значения экспрессии или p-значения. Если указан этот параметр, узлы окрашиваются в диапазон цветов от красного до синего (красный для низкое выражение, синий для высокого выражения) в зависимости от значений выражения.

exp.by.module

эта опция является логическим или числовым вектором, который представляет порядок модулей, указанный как ввод в опции mod.list. Эта опция используется для просмотра изменений значений выражений узлов в конкретном модуле с использованием диапазона цветов от красного до синего, красный указывает на низкое значение выражения, а синий указывает на высокие значения выражения.

tkplot

это логическая переменная, если она истинна, функция будет использовать функцию ‘tkplot’ для построения графика, если она ложна, функция будет использовать функцию построения графика с черным фоном.

layout.overall

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

sf

— целочисленная переменная, используемая для увеличения или уменьшения масштаба графика.

упорядочить по степени

— логическая переменная; если true, координаты узлов назначаются по их степени, узлы более высокой степени наносятся по направлению к центру, а узлы более низкой степени строятся снаружи.

mod.lab

— логическая переменная; печатает метки модулей в центре каждого модуля, если имена модулей доступны в ‘mod.list’ как имена списка.

node.lab

— логическая переменная; эта опция отображает метку вершины, если опция TRUE.

lab.cex

— числовая переменная; это определяет размер метки вершин или модулей.

lab.color

— строковая переменная; это назначает цвета меткам вершин или модулей.

лаб.расст

— числовая переменная; это настраивает метку вершин.

nodeset

— это объект списка, содержащий два вектора, он также может быть числовым вектором. Первый вектор содержит набор начальных узлов, а второй вектор содержит конечные узлы. В случае числового вектора, который указывает идентификатор модуля, он используется для отображения кратчайшего пути между двумя модулями. Кратчайшие пути визуализируются между начальными и конечными узлами.

path.col

— вектор цвета для раскраски кратчайшего пути между начальными и конечными узлами.

col.s1

— это цветовой вектор для окрашивания начальных узлов или модулей.

col.s2

— это цветовой вектор для окрашивания конечных узлов или модулей.

nodes.on.path

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

e.path.width

— вектор, содержащий размер 2. Эта опция задает ширину краев кратчайших путей между двумя модулями или двумя наборами узлов.

scale.module

— числовой вектор размера общего количества модулей. Эта опция независимо масштабирует размер каждого модуля.

v.size

— это числовое значение или числовой вектор, который содержит числовые значения для назначения размера узлов.

e.width

— числовое значение для назначения ширины краям.

v.sf

— числовое значение. Это используется для настройки размера вершины, когда вход v.size является числовым вектором.

bg

— это значение цвета для настройки цвета фона графика.

abstract.graph

— логическое значение, которое настраивает абстрактное представление модульного графика с использованием алгоритма на основе силы или любой входной функции, указанной в опции layout.overall .

modules.name.num

— логическое значение для отображения имени модуля или его номера.

v.size.path

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

... параметр для других входов.

Значение

возвращает объект списка класса ‘netbiov’

Ссылки

http://bio-complexity.com/

См. также

plot.abstract.nodes, plot.abstract.module

Примеры

Запустите этот код

 data("PPI_Athalina")
  данные ("modules_PPI_Athalina")
  ## Пример 1 #######%
  ##% График модульной схемы сети PPI А. Талиной, модули
##раскрашиваются случайным образом, информация о модуле представлена ​​в виде списка
##объект ###%
  id <- plot.modules(g1,mod.list = lm,
layout.function=layout.graphopt, color.random = TRUE,
tkplot=ЛОЖЬ,node.lab=ЛОЖЬ,v.size=1)
  ## Пример 2 #######%
  ##% График модульной схемы сети PPI А. Талиной, модули
##раскрашиваются случайным образом, информация о модуле предсказывается с помощью
##алгоритм 'fastgreedy' ###%
  id <- plot.modules(g1, layout.function=layout.graphopt,
color.random = TRUE, tkplot=FALSE, node. lab=FALSE, v.size=1)
  ## Пример 3 #######%
  ##% График модульной схемы сети PPI А. Талины, когда
## значение экспрессии генов указано ###%
  id <- plot.modules(g1, layout.function=layout.graphopt,
color.random = ИСТИНА, выражение = rnorm (vcount (g1)),
tkplot=ЛОЖЬ,node.lab=ЛОЖЬ,v.size=1)
  
  ## Пример 4 #######%
  ##% График модульной схемы сети PPI А. Талины, когда
##значения выражений модулей 1, 2 и 3 показаны цветами
##рейтинг независимо друг от друга ###%
  id <- plot.modules(g1, layout.function=layout.graphopt,
модули.цвет = "серый", выражение = rnorm (vcount (g1)),
tkplot = FALSE, node.lab = FALSE, v.size = 1, exp.by.module = c (1,2,3))
  ## Пример 5 #######%
  ##% График модульной схемы сети PPI А. Талины, сделанный
##выделение меток модулей ###%
  id <- plot.modules(g1, mod.list=lm,
layout.function=layout.graphopt, modules.color="серый",
tkplot=FALSE, mod.lab=TRUE, v.size=1, lab.color="green" )
  ## Пример 6 #######%
  ##% Схема модульной схемы сети PPI А. Талины
##подсветка кратчайших путей между модулями 1, 5 и 7, 18 ###%
  id <- plot. modules(g1, mod.list=lm,
layout.function=layout.graphopt, modules.color="серый",
tkplot=FALSE, nodeset=c(1,5,7,18), sf=-10, v.size=1)
  ## Пример 7 #######%
  ##% Схема модульной схемы объединения сети PPI А. Талины
##два макета ###%
  fn <- function(g)layout.star(g,
центр = который.max (степень (g)) - 1)
  id <- plot.modules(g1,mod.list = lm,
layout.function=layout.graphopt, layout.overall=fn, color.random
= ИСТИНА, tkplot = ЛОЖЬ, node.lab = ЛОЖЬ, v.size = 1)
  ## Пример 8 #######%
  ##% График модульной схемы сети PPI А. Талины в масштабе
##поднять второй модуль и уменьшить расширение других модулей ###%
  fn <- function(g)layout.star(g,
центр = который.max (степень (g)) - 1)
  см <- реп(1, длина(лм))
  см[2] <- 40
  id <- plot.modules(g1,mod.list = lm, layout.function=layout.graphopt,
layout.overall = fn, color.random = TRUE, tkplot = FALSE, v.size = 2, scale.module = sm,
мод.край.col="зеленый")
 

Запустите указанный выше код в браузере с помощью DataCamp Workspace

Модуль построения графиков — документация QExPy 2.

0.2 Модуль построения графиков — документация QExPy 2.0.2
qexpy.plotting.ploting. сюжет ( *args , **kwargs )[источник]

Отображает набор данных или функцию

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

По умолчанию полосы ошибок не отображаются. Если вам нужны полосы ошибок, их можно включить в объект «Сюжет».

Параметры

*args — первыми аргументами может быть объект XYDataSet, два отдельных массива для xdata и ydata, вызываемая функция или объект XYFitResult. Функция также принимает строка в конце списка аргументов в качестве строки формата.

Аргументы ключевого слова
  • xданные – список данных для x-значений

  • xerr – неопределенности значений x

  • ydata — список данных для y-значений

  • yerr – неопределенности значений y

  • xrange ( tuple ) — кортеж из двух значений, указывающий x-диапазон данных для построения графика

  • xname ( str ) — имя x-значения

  • yname ( str ) — имя y-значения

  • xunit ( str ) – единица измерения x

  • юнит ( стр ) – единица измерения у-значений

  • fmt ( str ) — строка формата для отображаемого объекта (стиль matplotlib)

  • color ( str ) – цвет объекта для рисования

  • label ( str ) – метка объекта для отображения в легенде

  • **kwargs — дополнительные аргументы ключевого слова, которые поддерживает matplotlib. pyplot.plot

См. также

XYDataSet , сюжет, pyplot.errorbar

Тип возврата

Участок

qexpy.plotting.ploting. история ( *args , **kwargs )[источник]

Строит гистограмму с набором данных

Параметры

*args — ExperimentalValueArray или аргументы, которые создают ExperimentalValueArray

См. также

гист()

Тип возврата

кортеж

qexpy.plotting.ploting. показать ( plot_obj=нет )[источник]

Рисует график для вывода

Модуль построения графиков QExPy хранит буфер на последнем графике, с которым выполнялась операция. Если нет В эту функцию передается экземпляр графика, будет показан буферизованный график.

Параметры

plot_obj ( Plot ) — экземпляр Plot для отображения.

qexpy.plotting.ploting. savefig ( имя файла , plot_obj=Нет , **kwargs )[источник]

Сохранить график в файл

Модуль построения графиков QExPy хранит буфер на последнем графике, с которым выполнялась операция. Если нет В эту функцию передается экземпляр графика, будет показан буферизованный график.

Параметры
  • имя файла ( строка ) – имя и формат файла (пример: myplot.pdf),

  • plot_obj ( Plot ) — отображаемый экземпляр Plot.

qexpy.plotting.ploting. get_plot ()[источник]

Получает текущий буфер графика

qexpy. plotting.ploting. new_plot ()[источник]

Очищает текущий буфер графика и запускает новый

класс qexpy.plotting.ploting. Участок [источник]

Структура данных, используемая для графика

Недвижимость

Участок. Название

Название этого сюжета, которое появится над цифрой

Тип

стр

Участок. xимя

Имя данных x, которое будет отображаться как метка x

Тип

стр

Участок. Имя

Имя данных y, которое будет отображаться как метка y

Тип

стр

Участок. Единица измерения

Единица данных x, которая будет отображаться на метке x

Тип

стр

Участок. юнит

Единица данных y, которая будет отображаться на этикетке y

Тип

стр

Участок. xметка

X-метка графика

Тип

стр

Участок. ярлык

метка участка

Тип

стр

Участок. хдиапазон

Область значений x этого графика

Тип

кортеж

Методы

Участок. сюжет ( *args , **kwargs )[источник]

Добавляет набор данных или функцию на график

См. также

сюжет()

Участок. история ( *args , **kwargs )[источник]

Добавляет гистограмму на график

См. также

гист()

Участок. подходит для ( *args , **kwargs )[источник]

Строит кривую, соответствующую последнему набору данных, добавленному к рисунку

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

См. также

подходит() сюжет()

Участок. показать ()[источник]

Рисует график для вывода

Участок. легенда ( new_setting=True )[источник]

Добавление или удаление легенды к графику

Участок. error_bars ( new_setting=True )[источник]

Добавить или удалить планки погрешностей с графика

Участок. остатки ( new_setting=True )[источник]

Добавить или удалить подграфик для отображения остатков

Участок. savefig ( имя файла , **kwargs )[источник]

Сохранить рисунок с помощью matplotlib

Читать документы v: последний

Версии
мастер
последний
стабильный
Загрузки
пдф
HTML
epub
При прочтении документов
Дом проекта
Строит

Сюжетный экспресс на Python

Питон > Основы > Сюжетный экспресс

Предложить редактирование этой страницы

Plotly Express — это краткий, согласованный высокоуровневый API для создания фигур.


Впервые в Plotly?

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

Обзор¶

Модуль plotly.express (обычно импортируется как px ) содержит функции, которые могут создавать целые фигуры сразу, и называется Plotly Express или PX. Plotly Express является встроенной частью plotly и является рекомендуемой отправной точкой для создания наиболее распространенных фигур. Каждая функция Plotly Express использует графические объекты внутри и возвращает экземпляр plotly.graph_objects.Figure . В документации plotly вы найдете способ построения рисунков Plotly Express в верхней части любой применимой страницы, за которым следует раздел о том, как использовать графические объекты для построения подобных рисунков. Любая фигура, созданная с помощью одного вызова функции с помощью Plotly Express, может быть создана с использованием только графических объектов, но с использованием в 5–100 раз большего количества кода.

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

Вот выступление с конференции SciPy 2021, которое дает хорошее представление о Plotly Express и Dash:

Plotly Express в настоящее время включает в себя следующие функции:

  • Основы : разброс , линия , область , бар , воронка 207 8 воронка 9018
  • Часть Целого : круг , солнечные лучи , карта дерева , сосулька , funnel_area
  • Одномерные распределения : гистограмма , поле , скрипка , полоса , ecdf
  • 2D-распределения : плотность_тепловой карты , плотность_контура
  • Ввод матрицы или изображения : imshow
  • Трехмерный : scatter_3d , line_3d
  • Многомерный : scatter_matrix , parallel_coordinates , parallel_categories
  • Тайловые карты : scatter_mapbox , line_mapbox , choropleth_mapbox , density_mapbox
  • Контурные карты : scatter_geo , line_geo , choropleth
  • Полярные карты : scatter_polar , line_polar , bar_polar
  • Троичные диаграммы : scatter_ternary , line_ternary

Функции высокого уровня¶

API Plotly Express в целом предлагает следующие функции:

  • Единая точка входа в plotly : просто импортируйте plotly. express как px и получите доступ ко всем функциям построения графиков, а также встроенную демонстрацию наборы данных под px.data и встроенные цветовые шкалы и последовательности под px.color . Каждая функция PX возвращает объект plotly.graph_objects.Рисунок , поэтому вы можете редактировать его, используя все те же методы, что и 9.0017 update_layout и add_trace .
  • Разумные, переопределяемые значения по умолчанию : Функции PX будут выводить разумные значения по умолчанию везде, где это возможно, и всегда позволят вам переопределить их.
  • Гибкие форматы ввода : функции PX принимают ввод в различных форматах, от list s и dict до длинных или широких форматов Pandas GeoPandas GeoDataFrames .
  • Конфигурация автоматической трассировки и макета : Функции PX будут создавать одну трассировку на кадр анимации для каждой уникальной комбинации значений данных, сопоставленных с дискретным цветом, символом, линией-тире, строкой-фасетом и/или гранью-столбцом. Атрибуты трассировки legendgroup и showlegend установлены таким образом, что только один элемент легенды появляется для каждой уникальной комбинации дискретного цвета, символа и/или линии-тире. Трассировки автоматически связываются с правильно сконфигурированным подграфиком соответствующего типа.
  • Автоматическая маркировка рисунков : функции PX маркируют оси, легенды и цветные полосы на основе входных данных DataFrame или xarray и обеспечивают дополнительный контроль с помощью аргумента labels .
  • Автоматические метки при наведении : функции PX заполняют метку при наведении с помощью меток, упомянутых выше, и обеспечивают дополнительный контроль с помощью аргументов hover_name и hover_data .
  • Управление стилем : функции PX считывают информацию о стиле из шаблона фигуры по умолчанию и поддерживают часто необходимые косметические элементы управления, такие как category_orders и color_discrete_map для точного управления категориальными переменными.
  • Единая обработка цвета : Функции PX автоматически переключаются между непрерывным и категоричным цветом в зависимости от типа ввода.
  • Фасетирование : функции двумерного декартова графика поддерживают фасетирование строк, столбцов и обернутых фасетов с аргументами facet_row , facet_col и facet_col_wrap .
  • Маргинальные участки : функции двумерного декартова графика поддерживают графики предельного распределения с аргументами marginal , marginal_x и marginal_y .
  • Серверная часть Pandas : функции 2D-декартова графика доступны как серверная часть графика Pandas, поэтому вы можете вызывать их через df.plot() .
  • Линии тренда : px.scatter поддерживает встроенные линии тренда с доступными выходными данными модели.
  • Анимации : многие функции PX поддерживают простую поддержку анимации с помощью аргументов animation_frame и animation_group .
  • Автоматическое переключение WebGL : для достаточно больших точечных диаграмм PX будет автоматически использовать WebGL для рендеринга с аппаратным ускорением.

Plotly Express в Dash¶

Dash — лучший способ создавать аналитические приложения на Python с использованием рисунков Plotly. Чтобы запустить приложение ниже, запустите pip install dash , нажмите «Загрузить», чтобы получить код, и запустите питон app.py .

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

Выход[2]:

Галерея¶

Следующий набор рисунков — это всего лишь пример того, что можно сделать с помощью Plotly Express.

Точечная, линейная, площадная и гистограмма¶

Узнайте больше о диаграммах рассеяния и дискретном цвете.

В [3]:

 импортировать plotly. express как px
df = px.data.iris()
рис = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
рис.шоу()
 

В [4]: ​​

 импортировать plotly.express как px
df = px.data.iris()
рис = px.scatter(df, x="sepal_width", y="sepal_length", color="species", marginal_y="скрипка",
           marginal_x="box", trendline="ols", template="simple_white")
рис.шоу()
 

Подробнее о планках погрешностей.

В [5]:

 импортировать plotly.express как px
df = px.data.iris()
df["e"] = df["sepal_width"]/100
рис = px.scatter(df, x="sepal_width", y="sepal_length", color="species", error_x="e", error_y="e")
рис.шоу()
 

Узнайте больше о гистограммах.

В [6]:

 импортировать plotly.express как px
df = px.data.tips()
fig = px.bar(df, x="sex", y="total_bill", color="smoker", barmode="group")
рис.шоу()
 

В [7]:

 импортировать plotly.express как px
df = px.data.medals_long()
рис = px. bar(df, x="медаль", y="количество", цвет="нация",
             pattern_shape="нация", pattern_shape_sequence=[".", "x", "+"])
рис.шоу()
 

Подробнее о фасетных графиках.

В [8]:

 импортировать plotly.express как px
df = px.data.tips()
fig = px.bar(df, x="sex", y="total_bill", color="smoker", barmode="group", facet_row="time", facet_col="day",
       category_orders={"день": ["Чт", "Пт", "Сб", "Вс"], "время": ["Обед", "Ужин"]})
рис.шоу()
 

Подробнее о матрицах диаграмм рассеяния (SPLOM).

В [9]:

 импортируйте plotly.express как px.
df = px.data.iris()
рис = px.scatter_matrix (df, размеры = ["sepal_width", "sepal_length", "petal_width", "petal_length"], color="species")
рис.шоу()
 

Подробнее о параллельных координатах и ​​параллельных категориях, а также о непрерывном цвете.

В [10]:

 импортировать plotly.express как px
df = px.data.iris()
рис = px. parallel_coordinates(df, color="species_id", labels={"species_id": "Виды",
                  "sepal_width": "Ширина чашелистика", "sepal_length": "Длина чашелистика",
                  "petal_width": "Ширина лепестка", "petal_length": "Длина лепестка", },
                    color_continuous_scale=px.colors.diverging.Tealrose, color_continuous_midpoint=2)
рис.шоу()
 

В [11]:

 импортировать plotly.express как px
df = px.data.tips()
рис = px.parallel_categories(df, color="size", color_continuous_scale=px.colors.sequential.Inferno)
рис.шоу()
 

Подробнее о метках при наведении.

В [12]:

 импортировать plotly.express как px
df = px.data.gapminder()
fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp", size="pop", color="continent",
           hover_name="страна", log_x=True, size_max=60)
рис.шоу()
 

Подробнее об анимации.

В [13]:

 импортировать plotly.express как px
df = px. data.gapminder()
рис = px.scatter(df, x="gdpPercap", y="lifeExp", анимация_frame="год", анимация_группа="страна",
           размер = "поп", цвет = "континент", hover_name = "страна", facet_col = "континент",
           log_x=Истина, size_max=45, range_x=[100,100000], range_y=[25,90])
рис.шоу()
 

Подробнее о линейных графиках.

В [14]:

 импортировать plotly.express как px
df = px.data.gapminder()
fig = px.line(df, x="год", y="lifeExp", color="континент", line_group="country", hover_name="country",
        line_shape="сплайн", render_mode="svg")
рис.шоу()
 

Подробнее о диаграммах с областями.

В [15]:

 импортировать plotly.express как px
df = px.data.gapminder()
fig = px.area(df, x="год", y="население", color="континент", line_group="страна")
рис.шоу()
 

Подробнее о временной шкале/диаграммах Ганта.

В [16]:

 импортировать plotly.express как px
импортировать панд как pd
df = pd. DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Resource="Alex"),
    dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15', Resource="Alex"),
    dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30', Resource="Max")
])
fig = px.timeline(df, x_start="Начало", x_end="Готово", y="Ресурс", color="Ресурс")
рис.шоу()
 

Подробнее о воронкообразных диаграммах.

В [17]:

 импортировать plotly.express как px
данные = дикт(
    число=[39, 27,4, 20,6, 11, 2],
    stage=["Посещение сайта", "Загрузки", "Потенциальные клиенты", "Запрашиваемая цена", "Счет отправлен"])
рис = px.funnel (данные, x = 'число', y = 'этап')
рис.шоу()
 

Диаграммы от части к целому¶

Узнайте больше о круговых диаграммах.

В [18]:

 импортировать plotly.express как px
df = px.data.gapminder().query("год == 2007").query("континент == 'Европа'")
df.loc[df['pop'] < 2.e6, 'country'] = 'Другие страны' # Представляет только большие страны
fig = px. pie(df, values='pop', names='country', title='Население европейского континента')
рис.шоу()
 

Узнайте больше о диаграммах солнечных лучей.

В [19]:

 импортируйте plotly.express как px.
df = px.data.gapminder().query("год == 2007")
fig = px.sunburst(df, path=['континент', 'страна'], values='pop',
                  color='lifeExp', hover_data=['iso_alpha'])
рис.шоу()
 

Подробнее о древовидных картах.

В [20]:

 импортировать plotly.express как px
импортировать numpy как np
df = px.data.gapminder().query("год == 2007")
fig = px.treemap(df, path=[px.Constant('мир'), 'континент', 'страна'], values='pop',
                  color='lifeExp', hover_data=['iso_alpha'])
рис.шоу()
 

Узнайте больше о сосульках.

В [21]:

 импортируйте plotly.express как px.
импортировать numpy как np
df = px.data.gapminder().query("год == 2007")
fig = px.icicle(df, path=[px. Constant('мир'), 'континент', 'страна'], values='pop',
                  color='lifeExp', hover_data=['iso_alpha'])
рис.шоу()
 
Распределения¶

Подробнее о гистограммах.

В [22]:

 импортировать plotly.express как px
df = px.data.tips()
fig = px.histogram(df, x="total_bill", y="tip", color="sex", marginal="коврик", hover_data=df.columns)
рис.шоу()
 

Узнайте больше о ящичковых диаграммах.

В [23]:

 импортировать plotly.express как px
df = px.data.tips()
fig = px.box(df, x="day", y="total_bill", color="курильщик", notched=True)
рис.шоу()
 

Подробнее о скрипичных сюжетах.

В [24]:

 импортировать plotly.express как px
df = px.data.tips()
fig = px.violin(df, y="tip", x="курильщик", color="sex", box=True, points="all", hover_data=df.columns)
рис.шоу()
 

В [25]:

 импортировать plotly.express как px
df = px.data.tips()
рис = px. ecdf(df, x="total_bill", color="sex")
рис.шоу()
 

В [26]:

 импортировать plotly.express как px
df = px.data.tips()
рис = px.strip(df, x="общий_счет", y="время", ориентация="ч", цвет="курильщик")
рис.шоу()
 

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

В [27]:

 импортировать plotly.express как px
df = px.data.iris()
рис = px.density_contour(df, x="sepal_width", y="sepal_length")
рис.шоу()
 

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

В [28]:

 импортируйте plotly.express как px.
df = px.data.iris()
fig = px.density_heatmap(df, x="sepal_width", y="sepal_length", marginal_x="коврик", marginal_y="гистограмма")
рис.шоу()
 

Изображения и тепловые карты¶

Узнайте больше о тепловых картах и ​​изображениях.

В [29]:

 импортируйте plotly. express как px.
данные = [[1, 25, 30, 50, 1], [20, 1, 60, 80, 30], [30, 60, 1, 5, 20]]
рис = px.imshow (данные,
                labels=dict(x="День недели", y="Время дня", color="Производительность"),
                x=['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница'],
                y=['Утро', 'День', 'Вечер']
               )
fig.update_xaxes (сторона = "сверху")
рис.шоу()
 

В [30]:

 импортировать plotly.express как px
из skimage import io
img = io.imread('https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg')
рис = px.imshow (изображение)
рис.шоу()
 
Тайловые карты¶

Узнайте больше о тайловых картах и ​​точках на тайловых картах.

В [31]:

 импортировать plotly.express как px
df = px.data.carshare()
рис = px.scatter_mapbox(df, lat="centroid_lat", lon="centroid_lon", color="peak_hour", size="car_hours",
                  color_continuous_scale=px.colors.cyclical. IceFire, size_max=15, масштаб=10,
                  mapbox_style="карто-позитрон")
рис.шоу()
 

Подробнее о тайловой карте Картограммы GeoJSON.

В [32]:

 импортировать plotly.express как px
df = px.data.election()
геоджсон = px.data.election_geojson()
рис = px.choropleth_mapbox(df, geojson=geojson, color="Bergeron",
                           местоположения = "район", featureidkey = "properties.district",
                           центр = {"широта": 45,5517, "долгота": -73,7073},
                           mapbox_style="карто-позитрон", zoom=9)
рис.шоу()
 

Контурные карты¶

Узнайте больше о контурных картах символов.

В [33]:

 импортировать plotly.express как px
df = px.data.gapminder()
рис = px.scatter_geo(df, location="iso_alpha", color="continent", hover_name="country", size="pop",
               animation_frame="год", проекция="природная земля")
рис.шоу()
 

Подробнее о картограммах.

В [34]:

 импортировать plotly.express как px
df = px.data.gapminder()
fig = px.choropleth(df, location="iso_alpha", color="lifeExp", hover_name="country", animation_frame="year", range_color=[20,80])
рис.шоу()
 
Полярные координаты¶

Подробнее о полярных графиках.

В [35]:

 импортировать plotly.express как px
df = px.data.wind()
рис = px.scatter_polar(df, r="частота", тета="направление", цвет="сила", символ="сила",
            color_discrete_sequence=px.colors.sequential.Plasma_r)
рис.шоу()
 

В [36]:

 импортировать plotly.express как px
df = px.data.wind()
fig = px.line_polar(df, r="частота", theta="направление", color="сила", line_close=True,
            color_discrete_sequence=px.colors.sequential.Plasma_r)
рис.шоу()
 

Узнайте больше о полярных гистограммах.

В [37]:

 импортировать plotly.express как px
df = px.data.wind()
рис = px. bar_polar(df, r="частота", theta="направление", цвет="сила", template="plotly_dark",
            color_discrete_sequence= px.colors.sequential.Plasma_r)
рис.шоу()
 
Трехмерные координаты¶

Узнайте больше о трехмерных точечных диаграммах.

В [38]:

 импортировать plotly.express как px
df = px.data.election()
fig = px.scatter_3d(df, x="Joly", y="Coderre", z="Bergeron", color="winner", size="total", hover_name="district",
                  symbol="result", color_discrete_map = {"Жоли": "синий", "Бержерон": "зеленый", "Кодер":"красный"})
рис.шоу()
 
Троичные координаты¶

Узнайте больше о троичных диаграммах.

В [39]:

 импортируйте plotly.express как px.
df = px.data.election()
fig = px.scatter_ternary(df, a="Joly", b="Coderre", c="Bergeron", color="winner", size="total", hover_name="district",
 size_max=15, color_discrete_map = {"Жоли": "синий", "Бержерон": "зеленый", "Кодер":"красный"} )
рис.

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

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