график::

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

Блокноты 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 = [c1... c2] для того, чтобы автоматически окрасить недавно сгенерированные графические объекты. Данный список используется вместо внутренне заданного списка цветов по умолчанию.

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: matrix ([c1, c2]), {[c1, c2], #Arrows}, {[matrix ([f1(x), f2(x)]), matrix ([f3(x), f4(x)])], #Arrows}, {matrix ([[f1(x), f2(x)], [f3(x), f4(x)]]), #Arrows}, {[[f1(x), f2(x)], [f3(x), f4(x)]], #Arrows}.
plot::Arrow3d: matrix ([c1, c2, c3]), {[c1, c2, c3], #Arrows}, {[matrix ([f1(x), f2(x), f3(x)]), matrix ([f4(x), f5(x), f6(x)])], #Arrows}, {matrix ([[f1(x), f2(x), f3(x)], [f4(x), f5(x), f6(x)]]), #Arrows}, {[[f1(x), f2(x), f3(x)], [f4(x), f5(x), f6(x)]], #Arrows}.
plot::Polygon2d: [[f1(x), f2(x)]...], [matrix ([f1(x), f2(x)])...], matrix ([[f1(x), f2(x)]...]), table (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]...]), table (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