[R-br] Plotar perfil de umidade no solo ao longo do ano
Jônatan
jdtatsch em gmail.com
Quinta Setembro 11 10:13:13 BRT 2014
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/20140911/ee1c64d7/attachment.html>
Mais detalhes sobre a lista de discussão R-br