plot
Esboço 2d
Seqüência de Chamamento
plot // demo plot(y) plot(x, y) plot(x, func) plot(x, list(func, params)) plot(x, polynomial) plot(x, rational) plot(.., LineSpec) plot(.., LineSpec, GlobalProperty) plot(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM) plot(x1,func1,LineSpec1, x2,y2,LineSpec2,...xN,funcN,LineSpecN, GlobalProperty1, ..GlobalPropertyM) plot(logflag,...) plot(axes_handle,...)
Parâmetros
- x
uma matriz ou vetor de reais. Se omitido, é assumido como sendo o vetor
1:n
onden
é o número de pontos de curva dado pelo parâmetroy
.- y
- um vetor ou matriz de reais.
- func
função definida como um macro ou uma primitiva, como em
plot(x, sin)
. If the function to plot needs some parameters as input arguments, the function and its parameters can be specified through a list, as inplot(x, list(delip,-0.4))
- polynomial
- Single polynomial or array of polynomials.
- rational
- Single rational or array of rationals.
- y1, y2, y3,..
Can be any of the possible input types described above:
- vectors or matrices of real numbers or of integers
- handle of a function (possibly in a list with its parameters).
- polynomials
- rationals
- LineSpec
este argumento opcional deve ser usado como um atalho para especificar um modo de desenhar uma linha. Podemos ter um
LineSpec
pory
ou{x,y}
previamente entrados. As opçõesLineSpec
lidam com os especificadores LineStyle, Marker e Color (ver LineSpec). Estes especificadores determinam o estilo de linha, de marcas e a cor das linhas esboçadas.- GlobalProperty
este argumento opcional representa uma seqüência de pares de declarações
{PropertyName,PropertyValue}
tque define propriedades globais de objetos a serem aplicadas a todas as curvas criadas pelo esboço. Para uma visualização completa de das propriedades disponíveis veja GlobalProperty.- logflag
"ln" | "nl" | "ll" : 2-character word made of "l" standing for "Logarithmic" or/and "n" standing for "Normal". The first character applies to the X axis, the second to the Y axis. Hence, "ln" means that the X axis is logarithmic and the Y axis is normal. The default is "nn": both axes in normal scales.
logflag
must be used afteraxes_handle
(if any) and before the first curve's datax
ory
orfunc
. It applies to all curves drawn by theplot(…)
instruction.- axes_handle
este argumento opcional força o esboço a aparecer dentro dos eixos selecionados fornecidos por
axes_handle
ao invés dos eixos correntes (ver gca).
Descrição
plot
esboça um conjunto de curvas 2d.
plot
foi reconstruído para lidar melhor com a sintaxe
do Matlab. Para melhorar a compatibilidade gráfica com o Matlab, utilize
plot
(ao invés de plot2d).
Especificação de entrada de dados:
Neste parágrafo, para sermos mais claros, não mencionaremos os
argumentos opcionais LineSpec
ou
GlobalProperty
já que eles não interferem na entrada de
dados (exceto pelas propriedades "Xdata"
,
"Ydata"
e "Zdata"
,
ver GlobalProperty). É assumido que todos
estes argumentos podem estar presentes também.
Se y
é um vetor, plot(y) esboça um vetor
y
versus o vetor
1:size(y,'*')
.
Se y
é uma matriz, plot(y) esboça cada coluna de
y
versus o vetor 1:size(y,1)
.
Se x
e y
são vetores,
plot(x,y) esboça o vetor y
versus o vetor
x
. Os vetores x
e
y
devem ter o mesmo número de entradas.
Se x
é um vetor e y
uma matriz
plot(x,y) esboça cada coluna de y
versus o vetor
x
. Neste caso, o número de colunas de
y
deve ser igual ao número de entradas de
x
.
Se x
e y
são matrizes,
plot(x,y) esboça cada coluna de y
versus a coluna
correspondente de x
. Neste caso, os tamanhos
x
e y
devem ser os mesmos.
Finalmente, se apenas x
ou y
é
uma matriz, o vetor é esboçado versus cada linha ou cada coluna da matriz.
A escolha é feita dependendo se a dimensão de linha ou coluna do vetor
coincide com a dimensão de linha ou coluna da matriz. No caso de uma
matriz quadrada (apenas x
ou penas
y
), a prioridade é dada a colunas ao invés de linhas
(ver exemplos abaixo).
y
também pode ser uma função definida como um
macro ou uma primitiva. Neste caso, os dados x
devem
ser fornecidos (como um vetor ou uma matriz) e a computação correspondente
de y(x)
é feita implicitamente.
Os argumentos LineSpec
e
GlobalProperty
devem ser utilizados para customizar o
esboço. Aqui está uma lista completa das opções disponíveis.
- LineSpec
esta opção pode ser utilizada para se especificar, de um modo curto e fácil, como as curvas são desenhadas. Deve sempre ser um string contendo referências aos especificadores LineStyle, Marker e Color.
Essas referências devem ser ajustadas denro do string (a ordem não é importante) de modo a não ter ambigüidades. Por exemplo, para especificar uma linha vermelha de traço longo com marcas de rombos, pode-se escrever :
'r--d'
ou'--dire'
ou'--reddiam'
ou outra sentença sem ambigüidade... ou de modo completo'diamondred--'
(ver LineSpec).Note que os estilos de linha e marcas (e tamanhos) e as cores, podem ser (re*)ajustados através das propriedades da entidade poligonal (ver polyline_properties).
- GlobalProperty
esta opção pode ser utilizada para especificar como as linhas serão desenhadas com mais opções que via
LineSpec
. Deve sempre ser um par de declarações constituidos de um string definindoPropertyName
, (nome da propriedade) e seu valor associadoPropertyValue
(que pode ser um string, um inteiro ou qualquer outra coisa... dependendo do tipo dePropertyName
). Utilizando-seGlobalProperty
, pode-se ajustar várias propriedades : todas as propriedades disponíveis via LineSpec e mais: a cor da marca (plano de fundo e primeiro plano), a visibilidade, o recorte e a espessura das curvas. (ver GlobalProperty)Note que todas as propriedades podem ser (re-)ajustadas através das propriedades de entidades poligonais (ver polyline_properties).
Observações
Por padrão, esboços sucessivos são superpostos. Para limpar o esboço
anterior, use clf()
. Para habilitar o modo
auto_clear
(limpeza automática) como modo padrão, edite
seus eixos fazendo o seguinte:
da=gda();
da.auto_clear = 'on'
Para uma melhor exibição, a função plot
pode
modificar a propriedade box
de seu Axes (eixos) raíze.
Isto acontece quando uma entidade Axes é criada por uma chamada a
plot
ou é vazia antes da chamada. Se um dos eixos é
centrado na origem, box é desabilitado. Em caso contrário, box é
habilitado.
Para mais informações sobre a propriedade box e sobre o posicionamento dos eixos, veja axes_properties
Uma tabela de cores padrão é utilizada para colorir as curvas esboçadas quando você não especifica as cores. Ao desenhar linhas múltiplas, o comando plot automaticamente atribui as cores abaixo de modo cíclico. Aqui estão as cores utilizadas:
R |
G |
B |
---|---|---|
0. | 0. | 1. |
0. | 0.5 | 0. |
1. | 0. | 0. |
0. | 0.75 | 0.75 |
0.75 | 0. | 0.75 |
0.75 | 0.75 | 0. |
0.25 | 0.25 | 0.25 |
Entre com o comando plot
para visualizar uma
demonstração.
Exemplos
Choosing the normal or logarithmic plotting mode:
gda().grid = [1 1]*color("grey70"); title(gda(), "fontsize", 3, "color", "lightseagreen", "fontname", "helvetica bold"); x = linspace(1e-1,100,1000); xm = 35; dx = 17; G = exp(-((x-xm)/dx).^2/2)*30; scf(1); clf subplot(2,2,1), plot(x, G), title("plot(x, y)") subplot(2,2,2), plot("ln", x, G), title("semilog-x : plot(""ln"", x, y)"); gca().sub_ticks(1) = 8; subplot(2,2,3), plot("nl", x, G), title("semilog-y : plot(""nl"", x, y)"); gca().sub_ticks(2) = 8; subplot(2,2,4), plot("ll", x, G), title("loglog : plot(""ll"", x, y)"); gca().sub_ticks = [8 8]; sda();
Simple plot of a single curve:
// Default abscissae = indices subplot(1,2,1) plot(sin(0:0.1:2*%pi)) xlabel("x indices") // With explicit abscissae: x = [0:0.1:2*%pi]'; subplot(1,2,2) plot(x, sin(x)) xlabel("Specified abscissae")
Multiple curves with shared abscissae: Y: 1 column = 1 curve:
Specifying a macro or a builtin instead of explicit ordinates:
clf subplot(2,2,1) // sin() is a builtin plot(1:0.1:10, sin) // <=> plot(1:0.1:10, sin(1:0.1:10)) title("plot(x, sin)", "fontsize",3) // with a macro: deff('y = myFun(x)','y = x + rand(x)') subplot(2,2,2) plot(-3:0.1:5, myFun) title("plot(x, myFun)", "fontsize",3) // With functions with parameters: subplot(2,2,3) plot(1:0.05:7, list(delip, -0.4)) // <=> plot(1:0.05:7, delip(1:0.05:7,-0.4) ) title("plot(x, list(delip,-0.4))", "fontsize",3) function Y=myPow(x, p) [X,P] = ndgrid(x,p); Y = X.^P; m = max(abs(Y),"r"); for i = 1:size(Y,2) Y(:,i) = Y(:,i)/m(i); end endfunction x = -5:0.1:6; subplot(2,2,4) plot(x, list(myPow,1:5)) title("plot(x, list(myPow,1:5))", "fontsize",3)
Plotting the graph of polynomials or rationals:
clf s = %s; // Polynomials x = -0.5:0.02:3; p = s*[2 ; (s-2) ; (s-1)*(s-2)] subplot(1,2,1) plot(x, p) legend(prettyprint(p,"latex","",%t), 2); // Rationals x = -0.5:0.02:2; r = (s-1)*s/(s-7)./[s+1, s-4] subplot(1,2,2) plot(x, r) legend(prettyprint(r,"latex","",%t), 2); gcf().children.grid = color("grey70")*[1 1]; // grids gcf().children.children([1 3]).font_size=3; // legends
--> p = s*[2 ; (s-2) ; (s-1)*(s-2)] p = 2s -2s +s² 2s -3s² +s³ ../.. --> r = (s-1)*s/(s-7)./[s+1, s-4] r = -s +s² -s +s² ---------- ----------- -7 -6s +s² 28 -11s +s²
Setting curves simple styles when calling plot():
clf t = -%pi:%pi/20:2*%pi; // sin() : in Red, with O marks, without line // cos() : in Green, with + marks, with a solid line // gaussian: in Blue, without marks, with dotted line gauss = 1.5*exp(-(t/2-1).^2)-1; plot(t,sin,'ro', t,cos,'g+-', t,gauss,':b')
Vertical segments between two curves, with automatic colors, and using Global properties for markers styles. Targeting a defined axes.
clf subplot(1,3,3) ax3 = gca(); // We will draw here later xsetech([0 0 0.7 1]) // Defines the first Axes area t = -3:%pi/20:7; // Tuning markers properties plot([t ;t],[sin(t) ;cos(t)],'marker','d','markerFaceColor','green','markerEdgeColor','yel') // Targeting a defined axes plot(ax3, t, sin)
Case of a non-square Y matrix: When it is consistent and required, X or/and Y data are automatically transposed in order to become plottable.
clf() x = [5 6 7 8] y = [1 1 1 1 8 2 3 4 5 9 3 4 5 6 10 4 5 6 7 12]; // Only one matching possibility case: how to make 4 identical plots in 4 manners... // x is 1x4 (vector) and y is 4x5 (non square matrix) subplot(221); plot(x', y , "o-"); // OK as is subplot(222); plot(x , y , "o-"); // x is transposed subplot(223); plot(x', y', "o-"); // y is transposed subplot(224); plot(x , y', "o-"); // x and y are transposed
Case of a square Y matrix, and X implicit or square:
clf t = [1 1 1 1 2 3 4 5 3 4 5 6 4 5 6 7]; subplot(231), plot(t,"o-") , title("plot(t)", "fontsize",3) subplot(234), plot(t',"o-"), title("plot(t'')", "fontsize",3) subplot(232), plot(t,t,"o-") , title("plot(t, t)", "fontsize",3) subplot(233), plot(t,t',"o-"), title("plot(t,t'')", "fontsize",3) subplot(235), plot(t', t,"o-"), title("plot(t'', t)", "fontsize",3) subplot(236), plot(t', t',"o-"), title("plot(t'', t'')", "fontsize",3) for i=1:6, gcf().children(i).data_bounds([1 3]) = 0.5; end
Special cases of a matrix X and a vector Y:
clf X = [1 1 1 1 2 3 4 5 3 4 5 6 4 5 6 7]; y = [1 2 3 4]; subplot(221), plot(X, y, "o-"), title("plot(X, row)", "fontsize",3) // equivalent to plot(t, [1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4]) subplot(223), plot(X, y', "o-"), title("plot(X, col) (row = col'')", "fontsize",3) subplot(222), plot(X',y, "o-"), title("plot(X'', row)", "fontsize",3) subplot(224), plot(X',y', "o-"), title("plot(X'', col) (row = col'')", "fontsize",3) for i = 1:4, gcf().children(i).data_bounds([1 3]) = 0.5; end
Post-tuning Axes and curves:
x=[0:0.1:2*%pi]'; plot(x-4,sin(x),x+2,cos(x)) // axis centered at (0,0) a=gca(); // Handle on axes entity a.x_location = "origin"; a.y_location = "right"; isoview on // Some operations on entities created by plot ... a.children // list the children of the axes : here it is an Compound child composed of 2 entities poly1= a.children.children(2); //store polyline handle into poly1 poly1.foreground = 4; // another way to change the style... poly1.thickness = 3; // ...and the thickness of a curve. poly1.clip_state='off' // clipping control isoview off
Ver Também
- plot2d — 2D plot
- plot2d2 — esboço 2d (funções de degraus)
- plot2d3 — esboço 2d (barras veticais)
- plot2d4 — esboço 2d (setas)
- param3d — plots a single curve in a 3D cartesian frame
- surf — Esboço de superfície 3d
- scf — Ajusta a (janela) de figura gráfica corrente
- clf — Clears and resets a figure or a frame uicontrol
- close — Closes graphic figures, progression or wait bars, the help browser, xcos, the variables browser or editor.
- delete — Deleta uma entidade gráfica e seus galhos
- LineSpec — Customização rápida de linhas que aparecem em um esboço
- Cores nomeadas — Lista dos nomes das cores
- GlobalProperty — Customização de aparência dos objetos (curvas, superfícies...) num comando plot ou surf.
Histórico
Versão | Descrição |
6.0.1 | The "color"|"foreground", "markForeground", and "markBackground" GlobalProperty colors can now be chosen among the full predefined colors list, or by their "#RRGGBB" hexadecimal codes, or by their indices in the colormap. |
6.0.2 | Plotting a function func(x, params) with input parameters is now possible with plot(x, list(func, params)). |
6.1.0 | logflag option added. |
6.1.1 | Polynomials and rationals can be plotted. |
Report an issue | ||
<< paramfplot2d | 2d_plot | plot2d >> |