# axes_properties

descrição das propriedades de entidades Axes (de eixos)

## Descrição

A entidade Axes é o segundo nível da hierarquia das entidades de gráfico. Esta entidade define os parâmetros que permitem a mudança de coordenadas e o esboço dos eixos tanto quanto os valores padrões dos parâmetros para criação de entidades galhos

Propriedades dos eixos
  parent:

    este campo contém o manipulador da figura raiz

  children:

    Fvetor FA contendo os manipuladores de todos os objetos gráficos galhos dos eixos. Estes objetos gráficos são do tipo `"Compound"`, `"Rectangle"`, `"Polyline"`, `"Segs"`, `"Arc"`, `"Grayplot"`,.. (ver Compound_properties, rectangle_properties, champ_properties, axis_properties, polyline_properties, segs_properties, grayplot_properties, surface_properties, param3d_properties, fec_properties, text_properties, legend_properties)

  visible:

    este campo contém o valor da propriedade `visible` (visível) para os eixos. O valor pode ser `"on"` (ligado) ou `"off"` . (desligado). Por padrão, os eixos são visíveis, `"on"` , caso todos os galhos visíveis sejam exibidos na tela. Se `"off"` , os eixos e seus galhos não são esboçados.

  axes_visible:

    um vetor de strings `1x3` string vector. Esta propriedade especifica se o eixo deve ser desenhado ou não. Seu valor pode ser `"on"` ou `"off"` para um ajuste global. Para agir em um único eixo, a sintaxe é `axes_visible(N)` onde `N` é `1,2` ou `3` correspondentes aos eixos `x,y` ou `z`.O dado de escala e, se requerido, os grides são desenhados se o valor for `"on"`. Note que ao criar uma simples entidade de eixo usando os comandos `gca()` (atalho para `get"current_axes")`) ou `gcf()` (atalho para `get(current_figure)`), a visibilidade dos eixos é ajustada para `"off"`.

  axes_reverse:

    um vetor de strings `1x3` correspondentes aos três eixos (X,Y,Z). Para cada eixo, a propriedade especifica a direção dos valores crescentes. Se `"off"`, a direção padrão é usada. Se `"on"`, a direção é invertida. Também é possível utilizar apenas um string, `"on"` ou `"off"`, para ajustar simultaneamente os três dados.

  grid:

    o valor do campo é um vetor `[x-grid,y-grid,z-grid]` onde `x-grid` controla o esboço para o eixo x, e `y-grid, z-grid` respectivamente para os eixos y e z. O valor padrão é `-1`, os grides não são desenhados, caso contrário, os grides são desenhados utilizando a cor dada indexada pelo valor do grid.

  grid_position:

    Este string determina a posição do grido comparada às outras entidades gráficas. Seu valor pode ser `"foreground"` para desenhar o grid à frente das outras entidades ou `"background"` para desenhar o grid atrás.

  x_location:

    especifica a localização do eixo y. Os valores possíveis são:

    - `"bottom"`. Neste caso, o eixo y é desenhado na parte direita do retângulo de eixos.

    - `"top"`. Neste caso, o eixo y é desenhado na parte esquerda do retângulo de eixos.

    - `"middle"` . Neste caso, o eixo y é desenhado na posição mais próxima da coordenada 0 do eixo x.

  y_location:

    especifica a localização do eixo y. Os valores possíveis são:

    - `"left"`. Neste caso, o eixo y é desenhado na parte direita do retângulo de eixos.

    - `"right"`. Neste caso, o eixo y é desenhado na parte esquerda do retângulo de eixos.

    - `"middle"`. Neste caso, o eixo y é desenhado na posição mais próxima da coordenada 0 do eixo x.

  title:

    um objeto anexado à entidade de eixos que retorna um manipulador gráfico de uma estrutura label (rótulo) (ver label_properties). Este campo define um título com opções sobre este label.

  x_label:

    um objeto anexado à entidade de eixos que retorna um manipulador gráfico de uma estrutura label (ver label_properties). Este campo define um label sobre o eixo x com opções sobre este label.

  y_label:

    um objeto anexado à entidade de eixos que retorna um manipulador gráfico de uma estrutura label (ver label_properties). Este campo define um label sobre o eixo y com opções sobre este label.

  z_label:

    um objeto anexado à entidade de eixos que retorna um manipulador gráfico de uma estrutura label (ver label_properties). Este campo define um label sobre o eixo z com opções sobre este label.

  auto_ticks:

    um vetor de strings `1x3` fornecendo o status auto_ticks para cada eixo. Esta propriedade especifica se cada eixo é graduado utilizando-se um algoritmo computacional ou não (graduações feitas pelo usuário). Os valores podem ser `"on"` ou `"off"` para ajuste global. Para agir em um único eixo, a sintaxe é `auto_ticks(N)` onde `N` é `1,2` ou `3` correspondentes aos eixos `x,y` ou `z`. Note que a edição de tiques (textos e/ou localizações) via `x_ticks, y_ticks` ou `z_ticks` ajusta automaticamente `auto_ticks` para `"off"` para os eixos correspondentes.

  x_ticks.locations:

    um vetor de reais contendo a localização das graduações sobre o eixo x. Esta propriedade pode ser editada especificando-se um novo vetor de reais (de mesmo tamanho). Para especificar graduações maiores ou menores, pode-se agir no tlist `x_ticks` definindo também um vetor de strings `x_ticks.labels`.

  y_ticks.locations:

    um vetor de reais contendo a localização das graduações sobre o eixo y. Esta propriedade pode ser editada especificando-se um novo vetor de reais (de mesmo tamanho). Para especificar graduações maiores ou menores, pode-se agir no tlist `y_ticks` definindo também um vetor de strings `y_ticks.labels`.

  z_ticks.locations:

    um vetor de reais contendo a localização das graduações sobre o eixo z. Esta propriedade pode ser editada especificando-se um novo vetor de reais (de mesmo tamanho). Para especificar graduações maiores ou menores, pode-se agir no tlist `z_ticks` definindo também um vetor de strings `z_ticks.labels`.

  x_ticks.labels:

    um vetor de strings contendo rótulos para as graduações no eixo x. Esta propriedade pode ser editada especificando-se um novo vetor (de mesmo tamanho). Para especificar graduações menores ou maiores, pode se agir no tlist `x_ticks` definindo também um vetor de reais `x_ticks.locations` .

  y_ticks.labels:

    um vetor de strings contendo rótulos para as graduações no eixo y. Esta propriedade pode ser editada especificando-se um novo vetor (de mesmo tamanho). Para especificar graduações menores ou maiores, pode se agir no tlist `y_ticks` definindo também um vetor de reais `y_ticks.locations` .

  z_ticks.labels:

    um vetor de strings contendo rótulos para as graduações no eixo z. Esta propriedade pode ser editada especificando-se um novo vetor (de mesmo tamanho). Para especificar graduações menores ou maiores, pode se agir no tlist `z_ticks` definindo também um vetor de reais `z_ticks.locations` .

  box:

    esta propriedade especifica se os eixos devem ser encerrados por uma caixa. Seu valor pode ser `"off"`, `"hidden_axes"`, `"back_half"` ou `"on".` Se o valor for `"off"`, a caixa não é desenhada. Se a propriedade for `"hidden_axes"`, apenas a moldura de trás é desenhada. Se o valor for `"back_half"`, os eixos X, Y e Z são desenhados também. Se a propriedade for `"on"` , a caixa toda é desenhada.

  filled:

    Esta propriedade especifica se o plano de fundo dos eixos devem ser desenhados ou não. Seu valor pode ser `"off"` ou `"on".` Se o valor for `"off"`, o plano de fundo não é desenhado e a caixa de eixos é transparente. Se a propriedade for `"on"` , o plano de fundo é desenhado utilizando-se a cor especificada pela propriedade `background`.

  sub_ticks:

    esta propriedade determina o número de subtiques a serem desenhados entre dois tiques principais. O valor de campo é o vetor `[nx,ny]` onde `nx` é o número de subtiques para o eixo x e `ny` é o correspondente para o eixo y.

  font_style:

    especifica a fonte a ser utilizada para exibir os rótulos. É um inteiro positivo que faz referência a uma das fontes carregadas. Seu valor deve estar entre 0, referenciando a primeira fonte e o número de fontes carregadas menos um, referenciando a última fonte carregada. Para mais informações, ver graphics_fonts.

  font_size:

    um inteiro especificando o tamanho da fonte usada para para os rótulos dos tiques. Se a propriedade `fractional_font` for `"off"` , apenas a parte inteira do valor é utilizada. Para mais informações, ver graphics_fonts.

  font_color:

    esta propriedade determina a cor dos rótulos dos tiques.

  fractional_font:

    esta propriedade especifica se os rótulos dos tiques serão exibidos com tamanhos de fonte fracionários. Seu valor pode ser `"on"` ou `"off"`. Se `"on"` , o valor em ponto flutuante de `font_size` é usado para exibição e a fonte não possui outro nome. Se `"off"` apenas a parte inteira é utilizada e a fonte não é suavizada.

  isoview:

    esta propriedade é utilizada para se obter escalas isométricas para os eixos x, y e z (por exemplo, para fazer com que a exibição da curva sin(x) versus cos(x) seja um círculo, não uma elipse). Os valores podem ser `"on"` ou `"off"`. Se o valor for `"on"`, os `data_bounds` dos eixos mudam automaticamente de acordo com os valores da propriedade de figura correspondente `figure_size`.

  cube_scaling:

    esta propriedade é utilizada no modo `3d mode` para se obter uma nova escala para os eixos x, y e z. De fato, permite que os dados se encaixem em um cubo 1x1x1; o objetivo é uma melhor visualização de gráficos 3d caso as escalas dos eixos se diferenciem muito umas das outras. Os valores podem ser `"on"` ou `"off"` (que é o valor padrão). Na maior parte dos casos, ajuda a gerar uma visualização 3d semelhante a do Matlab.

  view:

    este campo é relacionado ao universo gráfico. Toma `"3d"` como valor correspondente a visualizações em três dimensões. Em outros casos, pode ser `"2d"` para esboço inicial 2d (valor padrão). Este flag também depende dos esboços com os quais o usuário entra: um comando `plot3d` por exemplo, vai alternar o flag `view` de `"2d"` para `"3d"`.

  rotation_angles:

    este campo é o vetor `[alpha,theta]`. Estes dois valores fornecem as coordenadas esféricas de obsevação (em graus).

  log_flags:

    string de três caracteres que ajusta a escala (linear ou logarítmica) o longo dos eixos. Cada caractere especifica a escala para os eixos x, y e z respectivamente. Os valores podem ser `'n'` para escala linear ou `'l'` para escala logarítmica.

  tight_limits:

    se está propriedade for `"on"` os eixos se adaptam para se encaixarem dentro dos valores máximos e mínimos de `data_bounds`. Se o campo for `"off"`, os eixos podem aumentar os limites de modo a produzir rótulos de tiques convenientes.

  data_bounds:

    este campo contém os valores de limite para as coordenadas x,y e z. É a matriz `[xmin,ymin,zmin;xmax,ymax,zmax]` ou `[xmin,ymin;xmax,ymax]`. Note que, para ter estritamente os limites de dados especificados, `tight_limits` deve ser ajustado para `"on"` (ver acima).

  zoom_box:

    este campo contém a caixa de zoom corrente, se forem fornecidas quaisquer coordenadas. É uma matriz vazia (sem zoom) ou vetor `[xmin,ymin,xmax,ymax,zmin,zmax]` (define um retângulo dado por dois vértices opostos ).

  margins:

    um vetor `[margin_left,margin_right,margin_top,margin_bottom]` especificando a porção das margens para estes eixos. Este vetor é composto de números em [0 1] com valores padrões: [0.125 0.125 0.125 0.125] (estes números são razões relativas aos valores correspondentes da propriedade de figura `figure_size`).

  axes_bounds:

    um vetor `[x_left,y_up,width,height]` especificando a porção da figura usada por estes eixos, onde `x_left`, `y_up`, `width` e `height` são números em [0 1] fornecendo respectivamente a posição do canto superior esquerdo e a dimensão dos eixos (testes números são razões relativas aos valores correspondentes da propriedade de figura `figure_size`).

  hidden_axis_color:

    esta propriedade define a cor do eixo escondido. É um índice relativo ao mapa de cores corrente.

  user_data:

    este campo pode armazenar qualquer variável Scilab na estrutura de dados de eixos e recuperá-la.

Propriedades para funções de alto-nível

  As funções `plot`, `plot2dx`, `grayplot` e `matplot` utilizam as propriedades seguintes para decidir como misturar esboços consecutivos se isto não for declarado pelo argumento de chamada `frameflag` calling argument. O resultado da mistura é decidido através destas duas propriedades:

  auto_clear:

    se esta propriedade for `"on"`, uma chamada a um gráfico de alto-nível reinicializa os eixos correntes e apaga todos os seus galhos antes de realizar o esboço. Se for `"off"` os esboços serão adicionados aos eixos correntes de acordo com a propriedade `"auto_scale"`.

  auto_scale:

    uma propriedade para atualizar os limites de dados dos eixos. Se o valor for `"on"`, um novo esboço adaptará as propriedades de eixos correntes para se adequar aos esboços anteriores e correntes. Se o valor for `"off"` o novo esboço será esboçado nos limites de dados correntes.

Valores padrões dos galhos:
  hiddencolor:

    esta propriedade controla as cores das partes escondidas. Toma como valor um índice relativo ao mapa de cores corrente. Em outro caso, se for um valor negativo, as partes escondidas tomam a mesma cor que a superfície.

  line_mode:

    este campo contém o valor padrão da propriedade line_mode para objetos Segs, Rectangle, Legend, Axis, Plot3d, Fac3d, e Polyline. Seus valores podem ser `"on"` (padrão) ou `"off"`.

  line_style:

    este campo contém o valor padrão da propriedade `line_style` para objetos Segs, Arcs, Rectangle e Polyline. `line_style` seleciona o tipo de linha que será utilizado nos desenhos de linhas. Seu valor deve ser um inteiro no intervalo [0 6]. 0 e 1 significam linhas sólidas, os outros selecionam linhas tracejadas (ver getlinestyle).

  thickness:

    este campo contém o valor padrão da propriedade `thickness` para todos os objetos que utilizam linhas. Seu valor deve ser um inteiro positivo.

  mark_mode:

    este campo contém o valor padrão da propriedade `mark_mode` para os objetos Segs, Rectangle, Legend, Axis, Plot3d, Fac3d e Polyline. Seu valor pode ser `"on"` ou `"off"` (padrão).

  mark_style:

    este campo contém o valor padrão da propriedade `mark_style` para objetos Segs, Rectangle, Legend, Axis, Plot3d, Fac3d e Polyline. `mark_style` seleciona o tipo de marca a ser exibida. Seu valor deve ser um inteiro no intervalo [0 9] que significa: ponto, sinal de mais, cruz, estrela, diamante preenchido, diamante, triângulo para cima, triângulo para baixo, trevo ou círculo.

  mark_size_unit:

    este campo contém o valor padrão da propriedade `mark_size_unit` para objetos Segs, Rectangle, Legend, Axis, Plot3d, Fac3d e Polyline. Se `mark_size_unit` é ajustado para `"point"`, então o valor de `mark_size` é diretamente fornecido em pontos. Quando `mark_size_unit` é ajustado para `"tabulated"`, `mark_size` é computado de acordo com o array de tamanho de fonte: logo seu valor deve ser um inteiro no intervalo [0 5] que significa 8pt, 10pt, 12pt, 14pt, 18pt e 24pt. Note que plot2d e funções puras do Scilab utilizam o modo `tabulated` como padrão; ao utilizar-se a função plot o modo `point` é automaticamente habilitado.

  mark_size:

    este campo contém o valor padrão da propriedade `mark_size` para objetos Segs, Rectangle, Legend, Axis, Plot3d, Fac3d, e Polyline. `mark_size` seleciona o tamanho de fonte da marca ser exibida. Deve ser um valor inteiro entre [0 5] que significa 8pt, 10pt, 12pt, 14pt, 18pt e 24pt (ver getmark).

  mark_foreground:

    este campo contém o valor padrão da propriedade `mark_foreground` criados sob os eixos. Objetos Polyline, Rectangle, Legend, Surface, Segment e Axis utilizam esta propriedade para especificar uma cor de primeiro plano (borda) para suas marcas. O valor deve ser um índice de cor relativo ao mapa de cores corrente. Note que o valor padrão é `-1` (preto padrão) e, mesmo que você mude o `color_map`, este valor `-1` sempre apontará para a cor preta padrão.

  mark_background:

    este campo contém o valor padrão da propriedade `mark_background` para todos os objetos criados sob os eixos. objetos Polyline, Rectangle, Legend, Surface, Segment e Axis utilizam esta propriedade para especificar uma cor de plano de fundo (face) para suas marcas. O valor deve ser um índice de cor relativo ao mapa de cores corrente. Note que o valor padrão é `-2` (branco padrão) e, mesmo que você mude o `color_map`, este valor `-2` sempre apontará para a cor branca padrão.

  foreground:

    este campo contém o valor padrão da propriedade `foreground` para eixos e para todos os objetos criados sob os eixos. O valor deve ser um índice de cor relativo ao mapa de cores corrente. Note que o valor padrão é `-1` (preto padrão) e, mesmo que você mude o `color_map`, este valor `-1` sempre apontará para a cor preta padrão.

  background:

    este campo controla o valor padrão da propriedade `background` para os eixos e para objetos criados sob os eixos. O valor deve ser um índice de cor relativo ao mapa de cores corrente. Note que o valor padrão é `-2` branco padrão) e mesmo que você mude o `color_map`, este valor `-2` sempre apontará para a cor branca padrão.

  arc_drawing_mode:

    este campo controla o valor padrão da propriedade default `arc_drawing_mode` para todos os objetos Arc criados sob este objeto Axes. Seu valor pode ser `"nurbs"` ou `"lines"`.

  clip_state:

    este campo contém o valor padrão da propriedade `clip_state` para todos os objetos. Seu valor pode ser:

    - `"off"` isto indica todos os objetos criados depois que não estão recortados (valor padrão).

    - `"clipgrf"` isto indica todos os objetos criados depois que estão recortados fora das fronteiras dos eixos.

    - `"on"` isto indica todos os objetos criados depois que estão recortados fora do retângulo através da propriedade clip_box.

  clip_box:

    este campo contém o valor padrão da propriedade `clip_box` para todos os objetos. Deve ser uma matriz vazia se clip_state for `"off"`. Em outro caso, o recorte é dado por `[x,y,w,h]` (ponto superior esquerdo, largura, altura).

  Nota sobre valores padrões:

      Todas essas propriedades e campos listados herdam de valores padrões armazenados em um modelo de eixos. Estes valores podem ser visualizados e modificados. Para isto, utilize o comando `get("default_axes")` command : ele retorna o manipulador gráfico do modelo de eixos. Note que nenhuma janela de gráficos é criada por este comando. Note que os próximos eixos criados herdarão deste modelo (ver "exemplo sobre modelo de eixos" abaixo)

## Exemplos

    lines(0) // desabilitando o paginamento vertical
    a=get("current_axes")//obtendo o manipulador dos novos eixos criados
    a.axes_visible="on"; // tornando os eixos visíveis
    a.font_size=3; //ajustando o tamanho da fonte dos rótulos dos tiques
    a.x_location="top"; //ajustando a posição do eixo x
    a.data_bounds=[-100,-2,-1;100,2,1]; //ajustando os valores limites para as coordenadas x,y e z
    a.sub_tics=[5,0];
    a.labels_font_color=5;
    a.grid=[2,2];
    a.box="off";

    // exemplo com eixos 3d
    clf(); //limpando a janela de gráficos
    x=0.1:0.1:2*%pi;plot2d(x-.3,sin(x)*7+.2);
    a=gca(); // obtendo o manipulador dos eixos correntes
    a.grid=[1 -1 -1]; //make x-grid
    a.rotation_angles=[70 250]; //girando eixos com ângulos dados
    a.grid=[1 6 -1]; //criando y-grid
    a.view="2d"; //retornando a vista 2d
    a.box="back_half";
    a.labels_font_color=5;
    a.children.children.thickness=4;
    a.children.children.polyline_style=3;
    a.view="3d"; //return te the 3d view
    a.children.children.thickness=1;
    a.children.children.foreground=2;
    a.grid=[1 6 3]; //criando z-grid
    a.parent.background=4;
    a.background=7;
    plot2d(cos(x)+1,3*sin(x)-3);
    plot2d(cos(x)+7,3*sin(x)+3);
    a.children(2).children.polyline_style=2;
    a.children(1).children.polyline_style=4;
    a.children(1).children.foreground=5;
    a.children(2).children.foreground=14;
    a.parent.figure_size= [1200,800];
    a.box="on";
    a.labels_font_size=4;
    a.parent.background=8;
    a.parent.figure_size= [400,200];
    a.rotation_angles=[0 260];
    delete(a.children(2));
    delete(); // deletando objeto corrente

    a = gca();
    a.labels_font_size=1;
    a.auto_clear= "on";
    x=0:0.1:2.5*%pi;plot2d(10*cos(x),sin(x));

    a.data_bounds(:,1) = [1;15] ; // ajustando limites positivos para o eixo x
    a.log_flags = "lnn" ; // ajustando o eixo X para escala logarítmica
    a.log_flags = "nnn" ; // voltando para escala linear

    a=gca();
    a.rotation_angles=[45 45];
    a.data_bounds=[-20,-3,-2;20 3 ,2];
    xrect([-4 0.5 8 1]);
    a.auto_clear = "off" ;
    a.isoview="on"; // modo de isovisualização
    xrect([-2 0.25 4 0.5]);
    a.children(1).fill_mode="on";
    a.axes_visible="off";
    a.children(1).data=[-2 0.25 -1 4 0.5];
    a.children(2).data=[-4 0.5 1 8 1];
    x=2*%pi*(0:7)/8;
    xv=[.2*sin(x);.9*sin(x)];yv=[.2*cos(x);.9*cos(x)];
    xsegs(10*xv,yv,1:8)
    s=a.children(1);
    s.arrow_size=1;
    s.segs_color=5;
    a.data_bounds //os valores limites para as coordenadas x,y e z
    a.view="2d";
    a.data_bounds=[-10,-1; 10,1]; // ajustando os valores limites para vistas bidimensionais

    // exemplo com eixos modelos
    da=gda() // obtendo manipulador dos eixo modelos para ver e editar campos
    // título padrão
    da.title.text="My Default@Title"
    da.title.foreground = 12;
    da.title.font_size = 4;
    // rótulos x padrões
    da.x_label.text="x";
    da.x_label.font_style = 8;
    da.x_label.font_size = 2;
    da.x_label.foreground = 5;
    da.x_location = "middle";
    // rótulos y padrões
    da.y_label.text="y";
    da.y_label.font_style = 3;
    da.y_label.font_size = 5;
    da.y_label.foreground = 3;
    da.y_location = "right";
    da.thickness = 2;
    da.foreground = 7;
    // o esboço
    x=(0:0.1:2*%pi)';
    plot2d(x,[sin(x),sin(2*x),sin(3*x)],style=[1,2,3],rect=[0,-2,2*%pi,2]);
    sda() // de volta aos eixos modelos padrões

## Ver Também

- lines
- set
- get
- gca
- gda
- gcf
- sda
- sdf
- scf
- graphics_entities