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.

Controlando eixos no NCL - Parte 1

Olá,

Neste post vou falar um pouco sobre o controle de eixos em gráficos do NCL. Os recursos usados para alterar os eixos dos gráficos referem-se aos Tick marks (veja alguns exemplos disponíveis na página do NCL: http://www.ncl.ucar.edu/Applications/tickmarks.shtml). Esses recursos começam sempre com tm e os demais caracteres indicam o que eles fazem. Por exemplo, tmYROn retira ou coloca o eixo Y da direita. Vamos desmembrá-lo:

tm: indica que este recurso permite o controle dos eixos
YR: indica que o eixo Y que fica à direita (R) será alterado
On: indica que este recurso serve para colocar ou retirar o eixo, dependendo do valor passado ao recurso.

Vamos aos exemplos. Suponha que temos a variável lógica opcao definida para receber os recursos. Assim,

opcao@tmYROn = False

retira o eixo Y da direita, enquanto que

opcao@tmYROn = True

coloca o eixo Y da direita.

Usando da mesma lógica descrita acima, é possível retirar e colocar qualquer um dos eixos, bastando usar L para escolher o outro eixo Y, T ou B para escolher o eixo X superior ou inferior, respectivamente. É claro, no caso do eixo X, troca-se o Y do recurso por X. Portanto, temos os seguintes recursos para colocar ou retirar os eixos do gráfico:

tmYROn: retira/coloca o eixo Y da direita
tmYLOn: retira/coloca o eixo Y da esquerda
tmXTOn: retira/coloca o eixo X superior
tmXBOn: retira/coloca o eixo X inferior

Como mostrado acima, esses recursos são como chaves, ou seja, desligamos ou ligamos estes eixos usando True (verdadeiro) ou False (falso). O Exemplo 3 da página de exemplos do NCL apresentada acima ilustra o uso destes recursos.

Espero que tenha sido útil.