terça-feira, 26 de julho de 2011

Controlando eixos no NCL - Parte 2

Olá,

Agora, vamos ver como é possível alterar valores dos eixos de um gráfico no NCL. Para isso, também se usam os recursos para Tick marks.

Quem controla os valores dos eixos são os recursos (para cada um dos eixos) que terminam com Mode, ou seja, determinam o modo de atribuição de valores aos eixos do gráfico. Similarmente aos recursos usados para ligar/desligar eixos, temos:

tmXBMode, tmXTMode, tmYLMode e tmYRMode, que determinam os modos de atribuição de valores aos eixos X inferior, X superior, Y da esquerda e Y da direita, respectivamente.

Esses recursos aceitam três opções: Automatic, Manual ou Explicit. Para cada uma dessas opções, outros recursos devem ser definidos para que possamos alterar apropriadamente os valores dos eixos. Para simplificar a explicação, vamos nos fixar apenas no eixo X inferior, ou seja, em XB.

Definindo (novamente, suponha que temos uma variável lógica opcao, que receberá os recursos):

opcao@tmXBMode = "Automatic"

o NCL determinará os valores do eixo automaticamente. Este é o comportamento padrão. Como vocês já puderam notar, quando plotamos algum gráfico no NCL, ele já atribui valores aos eixos.

Agora, definindo

opcao@tmXBMode = "Manual"

informamos que a atribuição dos valores ao eixo X inferior será feita manualmente. Para isso, precisamos definir mais alguns recursos, que determinarão o valor inicial, o valor final, e o espaçamento entre os valores do eixo:

tmXBTickStartF: informa ao NCL o valor inicial (TickStart) para o eixo X inferior (XB)
tmXBTickEndF: informa ao NCL o valor final (TickEnd) para o eixo X inferior (XB)
tmXBTickSpacingF: informa ao NCL o intervalo entre os valores (TickSpacing) do eixo X inferior (XB)

Notem que ao final destes recursos há um F, que indica que o valor passado ao recurso pode ser real. Quando não há este F no final, deve-se passar um número inteiro, um valor lógico ou uma palavra (string).

Por fim, definindo

opcao@tmXBMode = "Explicit"

informamos que a atribuição dos valores ao eixo X inferior será feita explicitamente. Isto significa que determinaremos a quantidade de valores e quais valores (rótulos) serão atribuídos. Como no caso anterior, devemos usar outros recursos para esta forma de controle:

tmXBValues: informa ao NCL as posições coordenadas do eixo X inferior as quais serão atribuídos os rótulos deste eixo
tmXBLabels: informa ao NCL os rótulos que serão impressos no gráfico, nas posições informadas no recurso anterior.

A estes dois recursos normalmente se atribuem vetores, que indicam as coordenadas e os rótulos a serem impressos, respectivamente.

Vamos a exemplos práticos:

a) tmXBMode definido como Manual

opcao@tmXBMode = "Manual"
opcao@tmXBTickStartF = 1950
opcao@tmXBTickEndF = 2005
opcao@tmXBTickSpacingF = 5

b) tmXBMode definido como Explicit

opcao@tmXBMode = "Explicit"
opcao@tmXBValues = (/1950,1960,1970,1980,1990,2000,2005/)
opcao@tmXBLabels = (/"1950","1960","1970","1980","1990","2000","2005"/)

Notem que os vetores passados a tmXBValues e a tmXBLabels têm o mesmo número de elementos. Se isto não ocorrer, o NCL retorna um erro.

Estes exemplos foram retirados do Exemplo 2 da página dos exemplos do NCL referentes aos Tick Marks (http://www.ncl.ucar.edu/Applications/tickmarks.shtml). Tente executá-lo para entender o funcionamento dos recursos.

Lembrem-se que o apresentado acima vale para qualquer um dos eixos.

Abraços.

Nenhum comentário:

Postar um comentário