plot::easy

Легкий графический вывод

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

plot::easy(<arg, …>, options)

Описание

plot::easy( arg , <options>, …) преобразовывает данные и выражения в графические объекты.

plot::easy принимает графические объекты и графические атрибуты, как введено и возвращает их неизменный.

plot::easy поддерживает упомянутые выше опции. Кроме того, это принимает произвольные данные и выражения и пытается преобразовать их в допустимые графические объекты.

plot::easy поддерживает опцию Colors= [c1C2 ] для того, чтобы автоматически окрасить недавно сгенерированные графические объекты. Данный список используется вместо внутренне заданного списка цветов по умолчанию.

plot::easy принимает опции Mesh и Submesh и использует их в каждом недавно сгенерированном графическом объекте.

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

plot::easy попытки обработать стандартные ситуации интуитивно для того, чтобы сделать графический вывод максимально легким. Однако это поддерживает только небольшое подмножество графических объектов, атрибутов и выражений, доступных в MuPAD®, и таким образом не утверждает, что было завершено.

Пользователи, которые хотят построить другие объекты или управлять определенными деталями их графики явным образом, все еще должны создать свои графические объекты вручную, например, использование plot::Function2d и plot::Point2d, и использовать графические атрибуты как LineStyle =Dashed непосредственно.

plot::easy выбирает новый цвет для каждого объекта, который он создает, если никакой цвет не предопределен в данном контексте.

plot::easy принимает наборы {...} Как определение группы и преобразовывает их в графические объекты типа plot::Group2d(...) или plot::Group3d(...), соответственно. Все элементы группы совместно используют тот же цвет, если цвета не были заданы явным образом для отдельных объектов. Обратите внимание на то, что регулярные графические объекты обычно имеют предопределенный цвет.

plot::easy принимает вложенный набор {{...}} Как определение сцены и преобразовывает его в графический объект plot::Scene2d(...) или plot::Scene3d(...), соответственно.

Создание графического объекта может потребовать спецификации диапазонов значений для переменных. Если они не заданы явным образом затем plot::easy попытки используют диапазоны, указанные в других переменных и/или использовании область значений значения по умолчанию -5..5.

Примеры

Пример 1

plot::easy попытки преобразовать все определенные данные и выражения в допустимые графические объекты и атрибуты:

plot::easy(sin(x), [PI/2,1])

Начиная с функционального plot вызывает функциональный plot::easy для предварительной обработки ее входных данных сцены как вышеупомянутое могут непосредственно быть построены с помощью plot:

plot(sin(x), [PI/2,1], #x = PI/2, #y = 1)

Теперь это - только небольшой шаг, чтобы анимировать эту сцену:

plot(sin(x), {[x,sin(x)], #Points}, #x = x, #y = sin(x))

Примечание: Графические объекты и атрибуты, а также данные, что plot::easy не может преобразовать, возвращены неизменные:

plot::easy(x, plot::Point2d(1,1), LineStyle=Dashed, "UnknownObject")

Это то, почему plot возвращает следующее сообщение об ошибке, когда оно выполняется с вышеупомянутыми аргументами:

plot(x, plot::Point2d(1,1), LineStyle=Dashed, "UnknownObject");
Error: Invalid arguments '"UnknownObject"'. [plot::Canvas::new]

Пример 2

Точки могут быть введены как списки с двумя или тремя значениями. В качестве альтернативы соответствующий вектор-столбец в сочетании с опцией #Points (исказите #P, смотрите Пример 18) может использоваться.

Обратите внимание на то, что для графического вывода анимированных точек опция #Points требуется. В противном случае кривая (когда вводится список) или стрела (когда вводится вектор) построена:

plot([0,1], [s,s^2], {[s,s^2], #Points}, s = -2.. 2,
     matrix([t,t^2]), {matrix([t,t^2]), #Points}, t = 2..-2
)

Смотрите также: plot::Point2d, plot::Point3d.

Пример 3

Стрелы могут быть заданы как вектор-столбцы с двумя или тремя элементами. В качестве альтернативы список в сочетании с опцией #Arrows (исказите #A, смотрите Пример 13) может использоваться:

plot(matrix([0,1]), matrix([s,s^2]), s = 2..-2,
     [t,t^2], {[t,t^2], #Arrows}, t = -2..2
)

Если стрела должна запуститься в координатах кроме (0,0) или (0,0,0), соответственно, то список двух вектор-столбцов или соответствующий список списков в сочетании с опцией #Arrows (исказите #A, смотрите Пример 13) может использоваться:

u := matrix([3,2]):
v := matrix([1,4]):
w := (1-a)*u + a*v:
u, v, w;

plot(u, v, [u,w], a = 0.1..1, #Arrows)

delete u, v, w:

Смотрите также: plot::Arrow2d, plot::Arrow3d.

Пример 4

Многоугольники могут быть заданы как списки, таблицы или матрицы. В следующем примере многоугольники построены с помощью различных входных стилей. Опция #Origin (исказите #O, смотрите Пример 17) гарантирует, что источник системы координат отображается в сцене также:

plot([[1,3],[2,5],[3,3],[4,8]],
     table(1=4,2=6,3=4,4=9),
     [matrix([1,5]),matrix([2,7]),matrix([3,5]),matrix([4,10])],
     matrix([[1,6],[2,8],[3,6],[4,11]]),
     #Origin)

Обратите внимание на то, что многоугольники отображены как точки когда опция #Points (исказите #P, смотрите Пример 18) используется:

plot([[1,3],[2,5],[3,3],[4,8]],
     table(1 = 4,2 = 6,3 = 4,4 = 9),
     [matrix([1,5]),matrix([2,7]),matrix([3,5]),matrix([4,10])],
     matrix([[1,6],[2,8],[3,6],[4,11]]),
     #Points, #Origin)

Обратите внимание на то, что следующие многоугольники с двумя элементами отображены как стрелы когда опция #Arrows (исказите #A, смотрите Пример 13) используется:

plot([[1,4],[2,6]],
     [matrix([1,5]),matrix([2,7])],
     matrix([[1,6],[2,8]]),
     #Arrows, #Origin)

Смотрите также: plot::Polygon2d, plot::Polygon3d.

Пример 5

Укажите, что списки могут быть заданы как списки, таблицы или матрицы. Для каждой точки должен быть задан цвет RGBa. В следующем примере списки точек построены с помощью различных входных стилей. Опция #Origin (исказите #O, смотрите Пример 17) гарантирует, что источник системы координат отображается в сцене также:

plot([[1,2,RGB::Red], [2,4,[0,1,0]], [3,3,[0,0,1,0.5]]],
     [matrix([1,3,RGB::Red]), matrix([2,5,[0,1,0]]), 
                              matrix([3,4,[0,0,1,0.5]])],
     matrix([[1,4,RGB::Red], [2,6,[0,1,0]],[3,5,[0,0,1,0.5]]]),
     table(1=[5,RGB::Red], 2=[7,[0,1,0]], 3=[6,[0,0,1,0.5]]),
     #Origin)

Обратите внимание на то, что списки следующих моментов отображены как стрелы когда опция #Arrows (исказите #A, смотрите Пример 13) используется:

plot([[1,2,RGB::Red], [2,4,[0,1,0]] ,[3,3,[0,0,1,0.5]]],
     [matrix([1,3,RGB::Red]), matrix([2,5,[0,1,0]]), 
                             matrix([3,4,[0,0,1,0.5]])],
     matrix([[1,4,RGB::Red], [2,6,[0,1,0]], [3,5,[0,0,1,0.5]]]),
     table(1=[5,RGB::Red], 2=[7,[0,1,0]] ,3=[6,[0,0,1,0.5]]),
     #Arrows, #Origin)

Смотрите также: plot::PointList2d, plot::PointList2d.

Пример 6

Для проведения горизонтали и вертикальных бесконечных линий, короткий синтаксис #x = e и #y = e с e действительное выражение, может использоваться:

plot(sin(x), [PI/2,1], #x=PI/2, #y=1, #Legend)

Для рисования горизонтали и вертикальных бесконечных плоскостей, короткого syntax#x = e, #y = e и #z = e, с e действительное выражение, может использоваться.

Оба, линии и плоскости могут также быть анимированы:

plot([t,0,t^2], {[t,0,t^2], #Points}, #x=t, #z=t^2, #Legend)

Смотрите также: plot::Line2d, plot::Plane.

Пример 7

Кривая может быть задана как список с двумя или тремя элементами, где по крайней мере один элемент зависит от свободной переменной. Если опция #Points (исказите #P, смотрите Пример 18) установлен, затем вместо кривой, анимированная точка построена, который проходит кривая.

plot([t,sin(t)], {[t,sin(t)], #Points},  t=0..2*PI)

Смотрите также: plot::Curve2d, plot::Curve3d.

Пример 8

plot::easy попытки преобразовать выражения, которые не являются никакими списками, наборами, матрицами, уравнениями или неравенствами в графики 2D или 3D функций. Мы строим некоторые графики 2D функций:

plot(sin(x), tan(x), x)

Мы строим простую 3D функцию. Обратите внимание на то, что опция #3D (исказите #3, смотрите Пример 12) требуется в следующем примере для графического вывода 3D функции. В противном случае анимированная 2D функция создается.

plot(m*x, #3D)

Мы строим простую 2D анимацию: точка и соответствующая касательная синусоидальной функции проходят график синусоидальной функции:

f:= x -> sin(x):
plot(f(x), x = -PI..PI,
     {[a, f(a)], #Points}, f'(a)*(x-a) + f(a), a = -PI/2..PI/2)

Мы строим кусочную заданную функцию:

plot(piecewise([x < 1, -x^2 + 1], [x >= 1, x + 5]), #x=1, #Legend)

Та же кусочная заданная функция теперь написана в более коротком синтаксисе. Отметьте различие между определением одной функции с двумя ветвями (слева) и определением двух функций (справа):

plot({{[[x < 1, -x^2 + 1], [x >= 1, x + 5]], #x=1}},
     {{ [x < 1, -x^2 + 1], [x >= 1, x + 5] , #x=1}},
     #Legend)

Смотрите также: plot::Function2d, plot::Function3d.

Пример 9

Неявная функция может быть задана как уравнение:

plot(u^5 + x^2 = 1 - u^3)

Обратите внимание на то, что опция #3D (исказите #3, смотрите Пример 12) может потребоваться, чтобы строить плоскости, данные как декартовы уравнения. В противном случае анимированный 2D график может быть создан. Это зависит от количества переменной уравнения.

E1:= 2*x + 30*y - 2*z = 5:
E2:= -x + 7*y - z = 12:
E3:= -4*x + 2*y + z = 0:
plot(E1, E2, E3, #3D, #Legend)

delete E1, E2, E3:

Смотрите также: plot::Implicit2d, plot::Implicit3d.

Пример 10

Неравенство может быть отображено непосредственно:

plot(u^5+x^2 < 1-u^3)

То же самое верно для списка неравенств и уравнений:

plot([x < 3, x > 1, y <  4, y > -4])

Смотрите также: plot::Inequality.

Пример 11

Чтобы отобразить 2D текст в определенном положении, уравнение координатного кортежа и символьной строки или процедуры может быть введено:

plot([t, t^2],
    {[t, t^2], #Points},
     [t, t^2] = "moving text")

Мы отображаем 3D текст. Как в любом другом контексте plot::easy, мы можем использовать регулярные графические атрибуты как TextFont =Center также:

DIGITS := 2:
plot([t, t^2, 1],
    {[t, t^2, 1], #Points},
     [t, t^2, 1] = (t->" x = ".[t, t^2, 1.0]),
     TextFont=[Bold]):
delete DIGITS:

Смотрите также: plot::Text2d, plot::Text3d.

Пример 12

Обычно plot::easy создает 2D сцену, если один из аргументов не является 3D объектом или может только быть преобразован к 3D объекту или опции #3D используется.

plot(sin(x), #3)

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

plot([PI/2,1], sin(x), #3)

В следующем примере 3D точка определяет размерность сцены. Нет никакой потребности использовать опцию #3D для того, чтобы создать 3-ю сцену:

plot([PI/2,1,0], sin(x))

Пример 13

С опцией #Arrows, стрелы вместо точек или кривых создаются. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только.

plot({{ [-5,25], [5,25], [x,x^2]     }},
     {{ [-5,25], [5,25], [x,x^2], #A }})

Пример 14

Опция #Constrained создает систему координат с ограниченными масштабированными осями. Это - ярлык для Scaling = Constrained.

plot({{ x^2 }}, {{ x^2, #C }})

Пример 15

Опция #Grid создает систему координат с линиями сетки. Это - ярлык для GridVisible = TRUE.

plot({{ x^2 }}, {{ x^2, #G }})

Пример 16

Опция #Legend создает легенду. Это - ярлык для LegendVisible = TRUE в сочетании с LegendEntry = TRUE. Обратите внимание на то, что plot::easy явным образом устанавливает текст легенды для каждого графического объекта, который он создает.

plot([0,-6], x^2-5, [t,t^2], #L)

Пример 17

Опция #Origin включает координаты (0,0) или (0,0,0), соответственно, в поле просмотра текущей сцены.

plot({{[2,2], [3,3]}}, {{[2,2], [3,3], #O}})

Пример 18

Используя опцию #Points, точки вместо стрел или кривых создаются. Кроме того, эта опция устанавливает атрибуты PointsVisible =TRUE и LinesVisible =FALSE. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только.

plot({[-5,25], [x,x^2], #Gray}, {matrix([5,25]), [x,x^2], #P})

Пример 19

#X Y / #Z = a..b устанавливает x-/y-/z-область-значений поля просмотра сцены к a..b. Это - ярлык для ViewingBoxXRange / ViewingBoxYRange / ViewingBoxZRange = a..b.

plot({{x^2, sin(x)}}, {{x^2, sin(x), #Y=0..4}})

Мы чертим 3D сцену с ограниченным полем просмотра. Поэтому только четверть доли отображается:

plot({{plot::Sphere(1)}},
     {{plot::Sphere(1), #X=0..1, #Y=0..1, #Z=0..1}})

Параметры

arg

Любой объект

Опции

#3D

Исказите #3. Создает 3D вместо 2D сцены, если это возможно. Обычно, 2D сцена создается, если один из аргументов не является 3D объектом или может только быть преобразован в один.

#Arrows

Исказите #A. Создает стрелы вместо точек. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только.

#Constrained

Исказите #C. Создает систему координат с осями, имеющими то же масштабирование. Это - ярлык для Scaling =Constrained.

#Grid

Исказите #G. Создает систему координат с линиями сетки. Это - ярлык для GridVisible =TRUE.

#Legend

Исказите #L. Создает легенду. Это - ярлык для LegendEntry =TRUE и LegendVisible =TRUE. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только. Обратите внимание на то, что plot::easy явным образом устанавливает текст легенды для каждого графического объекта, который он создает.

#Origin

Исказите #O. Включает координаты (0,0) или (0,0,0), соответственно, в поле просмотра текущей сцены.

#Points

Исказите #P. Создает точки вместо этого стрелы или кривые. Кроме того, это устанавливает атрибуты PointsVisible =TRUE и LinesVisible =FALSE. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только.

#XRange

Опция, заданная как #XRange = a .. b

Исказите #X = a B. Устанавливает x-область-значений поля просмотра сцены к a..b. Это - ярлык для ViewingBoxXRange =a..b.

#YRange

Опция, заданная как #YRange = a .. b

Исказите #Y = a B. Устанавливает y-область-значений поля просмотра сцены к a..b. Это - ярлык для ViewingBoxYRange =a..b.

#ZRange

Опция, заданная как #ZRange = a .. b

Исказите #Z = a B. Устанавливает z-область-значений поля просмотра сцены к a..b. Это - ярлык для ViewingBoxZRange =a..b.

#<Colorname>

Если RGB ::<Colorname> допустимое название цвета в MuPAD, #<Colorname> преобразовывается к: Color = RGB ::<Colorname>, LineColorType =Flat и для 3D объектов дополнительно FillColorType =Flat. Прозрачный RGB цвета могут быть заданы как #<Colorname>.[t], с t находится в 0.. 1. Если #<Colorname> допустимый цвет в соответствии с соглашениями HTML затем вместо RGB ::<Colorname>, соответствующий RGB или значение цвета RGBa вставляются. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только.

#<Colorname1> .. #<Colorname2>

Если RGB ::<Colorname1> и RGB ::<Colorname2> допустимые названия цвета в MuPAD, эта опция преобразовывается к:

Color = RGB ::<Colorname1>, LineColorType =Dichromatic, LineColor2 = RGB ::<Colorname2> в 2D сценах и к:

Color = RGB ::<Colorname1>, FillColorType =Dichromatic, FillColor2 = RGB ::<Colorname2> в 3D сценах.

Прозрачный RGB цвета могут быть заданы как #<Colorname>.[t], с t находится в 0.. 1. Если #<Colorname1> и/или #<Colorname2> допустимые цвета в соответствии с соглашениями HTML затем вместо RGB ::<Colorname1> и/или, RGB ::<Colorname2> соответствующий RGB или значения цвета RGBa вставляются. Когда используется в {...} - группа, это влияет на элементы этой группы или сцены только.

Возвращаемые значения

Последовательность графических объектов и графических атрибутов, а также объектов, которые не могли быть преобразованы plot::easy.

Перегруженный

arg

Алгоритмы

Позвольте ci будьте вещественными константами и f и fi будьте действительными функциями. plot::easy автоматически выполняет следующие преобразования:

Графический объектДанные или математическое выражение
plot::Point2d: C1 C2 ], {[f1(x), f2(x)'points'}, {matrix([f1(x), f2(x)'points'}.
plot::Point3d: C1 C2 , c3], {[f1(x), f2(x), f3(x)'points'}, {matrix([f1(x), f2(x), f3(x)'points'}.
plot::Arrow2d: matrixC1 C2 C1 C2 Стрелки}, {[matrix([f1(x), f2(x)]), matrix([f3(x), f4(x)Стрелки}, {matrix([[f1(x), f2(x)], [f3(x), f4(x)Стрелки}, {[[f1(x), f2(x)], [f3(x), f4(x)Стрелки}.
plot::Arrow3d: matrixC1 C2 , c3C1 C2 , c3Стрелки}, {[matrix([f1(x), f2(x), f3(x)]), matrix([f4(x), f5(x), f6(x)Стрелки}, {matrix([[f1(x), f2(x), f3(x)], [f4(x), f5(x), f6(x)Стрелки}, {[[f1(x), f2(x), f3(x)], [f4(x), f5(x), f6(x)Стрелки}.
plot::Polygon2d: [[f1(x), f2(x)]...], [matrix([f1(x), f2(x)])...], matrix([[f1(x), f2(x)Таблица(f1(x)=f2(x),...).
plot::Polygon3d: [[f1(x), f2(x), f3(x)]...], [matrix([f1(x), f2(x), f3(x)])...], matrix([[f1(x), f2(x), f3(x)]...]). table(f1(x)= [f2(x), f3(x)],...).
plot::PointList2d: [[f1(x), f2(x), RGBa]...], [matrix([f1(x), f2(x), RGBa])...], matrix([[f1(x), f2(x), RGBaТаблица(f1(x)= [f2(x), RGBa],...).
plot::PointList3d: [[f1(x), f2(x), f3(x), RGBa]...], [matrix([f1(x), f2(x), f3(x), RGBa])...], matrix([[f1(x), f2(x), f3(x), RGBa]...]). table(f1(x)= [f2(x), f3(x), RGBa],...).
plot::Line2d: #x= f(x), #y= f(x).
plot::Plane: #z= f(x), {#x= f(x) , #3D}, {#y= f(x) , #3D}, {#z= f(x) , #3D}.
plot::Curve2d: [f1(x), f2(x)].
plot::Curve3d: [f1(x), f2(x), f3(x)].
plot::Function2d: f(x), f(x, a), [cond1, f(x)], [[cond1, f(x)],...].
plot::Function3d: f(x, y, a), [cond1, f(x, y, a)], [[cond1, f(x, y, a)]...], {f(x), #3D}, {f(x, a), #3D}.
plot::Implicit2d: f1(x, y, a)=f2(x, y, a).
plot::Implicit3d: f1(x, y, z, a)=f2(x, y, z, a), {f1(x, y, a)=f2(x, y, a), #3D}.
plot::Inequality: f1(x, a) < f2(x, a), f1(x, a) ≤ f2(x, a), f1(x, a) > f2(x, a), f1(x, a) ≥ f2(x, a), [f1(x, a)<f2(x, a), f3(x, a)> f4(x, a), f5(x, a)=f6(x, a),...].
plot::Text2d: [f1(x), f2(x)] =text, matrix([f1(x), f2(x)]) =text, [f1(x), f2(x)] =procedure, matrix([f1(x), f2(x)]) =procedure.
plot::Text3d: [f1(x), f2(x), f3(x)] =text, matrix([f1(x), f2(x), f3(x)]) =text, [f1(x), f2(x), f3(x)] =procedure, matrix([f1(x), f2(x), f3(x)]) =procedure.

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте