<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div class="" style=""><span class="" style="">Olá pessoal,</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span class="" style=""><br class="" style=""></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span class="" style="">Estou tentando fazer um gráfico de contorno no R mas ainda não encontrei a função certa para isso. </span><span style="background-color: transparent;" class="">Basicamente, eu tenho uma simulação de umidade em 11 camadas do solo
para cada dia do ano, e gostaria de mostrar isso na forma de um perfil de solo.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span style="background-color: transparent;" class=""><br class="" style=""></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span style="background-color: transparent;" class="">Por favor leia os comentários ao reproduzir os meus dados com o código abaixo:</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span
style="background-color: transparent;" class=""><br class="" style=""></span></div><div style="background-color: transparent;" class="">library(repmis) # reads text data directly from dropbox - no need to download any file</div><div style="background-color: transparent;" class=""><br class="" style=""></div><div style="background-color: transparent;" class=""># read data</div><div style="background-color: transparent;" class="">url <- 'https://dl.dropboxusercontent.com/u/27700634/precip.txt'</div><div style="background-color: transparent;" class="">tmp <- repmis::source_data(url, sep = '', header = TRUE)</div><div style="background-color: transparent;" class=""><br class="" style=""></div><div style="background-color: transparent;" class=""># convert julian day to date</div><div style="background-color: transparent;" class="">date <- as.Date(tmp$julian, origin='2011-12-31')</div><div style="background-color: transparent;" class="">data <-
cbind(date, tmp)</div><div style="background-color: transparent;" class="">head(data)</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><br></div><div style="background-color: transparent;" class=""># now, convert soil layers to matrix and transpose it</div><div style="background-color: transparent;" class="">mat <- t(as.matrix(data[, 4:14]))</div><div style="background-color: transparent;" class=""># essa é a matriz que eu quero plotar. Reparem que ela já está organizada como um "perfil",</div><div style="background-color: transparent;" class=""><span style="background-color: transparent;" class=""></span></div><div style="background-color: transparent;" class=""># com as linhas representando as camadas de solo e as colunas representando os dias do ano</div><div style="color: rgb(0, 0, 0);
font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span style="background-color: transparent;" class=""><br class="" style=""></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span style="background-color: transparent;" class="">A minha primeira tentativa foi usar a função </span><span style="font-size: 12pt;" class="">filled.contour</span><span style="font-size: 12pt;" class=""> do pacote graphics. Eu defino um vetor com o nome das camadas do solo e então eu tento plotar, mas a função diz que a matriz está com as dimensoes invertidas:</span><br class="" style=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,
'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span style="font-size: 12pt;" class=""><br class="" style=""></span></div><div style="background-color: transparent;" class=""># define vector with depth of soil layers</div><div style="background-color: transparent;" class="">depths <- c(0.05,0.10,0.20,0.30,</div><div style="background-color: transparent;" class=""> 0.40,0.60,0.80,1.00,</div><div style="background-color: transparent;" class=""> 1.50,2.00,2.50)</div><div style="background-color: transparent;" class=""><br class="" style=""></div><div style="background-color: transparent;" class=""># Plot soil moisture profile</div><div style="background-color: transparent;" class=""><span class="" style=""></span></div><div style="background-color: transparent;" class="">plot <-
filled.contour(data$julian, depths, mat)</div><div class="" style=""><div class="" style=""><br class="" style=""></div><div class="" style="">#Error in .filled.contour(x, y, z, levels, col) : dimension mismatch</div><div class="" style=""><br class="" style=""></div></div><div class="" style="">Obviamente eu consigo transpor a matrix para forçar o gráfico, mas a figura final não é o que eu preciso - o perfil fica de "cabeça para baixo".</div><div class="" style=""><div class="" style="margin-top: 0.1em; margin-bottom: 0.1em; background-color: transparent;">plot <- filled.contour(data$julian, depths, t(mat))</div><div class="" style="margin-top: 0.1em; margin-bottom: 0.1em; background-color: transparent;"><br></div><div class="" style="margin-top: 0.1em; margin-bottom: 0.1em; color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color:
transparent;">Como essa função só aceita os eixos em ordem crescente, eu não consigo inverter o eixo y para mostrar a primeira camada do solo no topo do gráfico.</div><div class="" style=""></div></div><div class="" style=""><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;" class=""><span class="" style="">Poranto, eu aprecio qualquer sugestão de funções e/ou pacotes para construir o gráfico que eu preciso. </span></div><div class="" style=""></div><div class="" style=""> </div><div class="" style="">Saudações,<br class="" style="">--<br class="" style="">Thiago V. dos Santos<br class="" style="">PhD student<br class="" style="">Land and Atmospheric Science<br class="" style="">University of Minnesota<br class=""
style="">http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm<br class="" style="">Phone: (612) 323 9898</div></div></body></html>