[R-br] Plotar perfil de umidade no solo ao longo do ano
Thiago V. dos Santos
thi_veloso em yahoo.com.br
Sexta Setembro 12 19:55:41 BRT 2014
Caros Izidro Pi, Luis Iván e Jônatan,
Obrigado pelas suas respostas. Analisei cada uma delas e todas foram úteis, mas o Jônatan foi um passo adiante e antecipou a reposta para a próxima pergunta que eu ia fazer na lista - como combinar dois gráficos mantendo um mesmo eixo x.
Saudações,
--
Thiago V. dos Santos
PhD student
Land and Atmospheric Science
University of Minnesota
http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm
Phone: (612) 323 9898
On Thursday, September 11, 2014 8:13 AM, Jônatan <jdtatsch em gmail.com> wrote:
Segue algumas alternativas:
library(repmis) # reads text data directly from dropbox - no need to download any file
# read data
url <- 'https://dl.dropboxusercontent.com/u/27700634/precip.txt'
tmp <- repmis::source_data(url, sep = '', header = TRUE)
# convert julian day to date
date <- as.Date(tmp$julian, origin='2011-12-31')
data <- cbind(date, tmp)
head(data)
# define vector with depth of soil layers
depths <- c(0.05,0.10,0.20,0.30,
0.40,0.60,0.80,1.00,
1.50,2.00,2.50)
# teste com lattice
cols <- ncol(data):4
levelplot(as.matrix(data[, cols]),
aspect = "fill", xlab = "date", ylab = "soil Moist.",
scales = list(x = list(at = which(date %in% pretty(date)),
labels = pretty(date)),
y = list(at = length(cols):1, labels = depths)),
contour = T)
# Plot soil moisture profile
# como são profundidades (abaixo da superfície) use a convenção de z negativo
# acrescentei a chuva, precisa ajustar ylabels, mtext() resolve
x11()
op <- par(mar = c(3,4,12,3))
plot <- filled.contour(date, sort(-depths), as.matrix(data[, cols]), ylab = expression(theta(m^3~~m^-3)))
par(new=T,mar=c(23,4,1,8))
with(data,
plot(date, precip, type = "h", xaxt = "n", xpd = T, xaxs="i", ylab = "Precip (mm)", xlab = ""))
par(op)
2014-09-10 16:15 GMT-03:00 Thiago V. dos Santos <thi_veloso em yahoo.com.br>:
Olá pessoal,
>
>
>Estou tentando fazer um gráfico de contorno no R mas ainda não encontrei a função certa para isso. 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.
>
>
>Por favor leia os comentários ao reproduzir os meus dados com o código abaixo:
>
>
>library(repmis) # reads text data directly from dropbox - no need to download any file
>
>
># read data
>url <- 'https://dl.dropboxusercontent.com/u/27700634/precip.txt'
>tmp <- repmis::source_data(url, sep = '', header = TRUE)
>
>
># convert julian day to date
>date <- as.Date(tmp$julian, origin='2011-12-31')
>data <- cbind(date, tmp)
>head(data)
>
>
># now, convert soil layers to matrix and transpose it
>mat <- t(as.matrix(data[, 4:14]))
># essa é a matriz que eu quero plotar. Reparem que ela já está organizada como um "perfil",
># com as linhas representando as camadas de solo e as colunas representando os dias do ano
>
>
>A minha primeira tentativa foi usar a função filled.contour 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:
>
>
>
># define vector with depth of soil layers
>depths <- c(0.05,0.10,0.20,0.30,
> 0.40,0.60,0.80,1.00,
> 1.50,2.00,2.50)
>
>
># Plot soil moisture profile
>plot <- filled.contour(data$julian, depths, mat)
>
>
>#Error in .filled.contour(x, y, z, levels, col) : dimension mismatch
>
>
>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".
>plot <- filled.contour(data$julian, depths, t(mat))
>
>
>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.
>
>
>Poranto, eu aprecio qualquer sugestão de funções e/ou pacotes para construir o gráfico que eu preciso.
>
>Saudações,
>--
>Thiago V. dos Santos
>PhD student
>Land and Atmospheric Science
>University of Minnesota
>http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm
>Phone: (612) 323 9898
>_______________________________________________
>R-br mailing list
>R-br em listas.c3sl.ufpr.br
>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>
--
###############################################################
## Jônatan Dupont Tatsch
## Professor do Departamento de Física
## Centro de Ciências Exatas e Naturais (CCNE)
## Universidade Federal de Santa Maria
## Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900
## Telefone: +55(55)33012083
## www.ufsm.br/meteorologia
###############################################################
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140912/a4dbee40/attachment.html>
Mais detalhes sobre a lista de discussão R-br