Gráfico com abundância empilhada

Ir em baixo

Gráfico com abundância empilhada

Mensagem por diogojanuario em Qui Abr 05, 2018 12:45 pm

Olá!

É possível criar um gráfico de barras em que é mostrada a abundância de cada espécie por local de forma empilhada?

Exemplo de dados:
sp<-c(6.26,10.05,13.32,9.65,14.39,15.08,11.68,9,9.02,10.36) #abundância das espécies
Ambiente<-c("T1","T1","T1","T1","T1","T2","T2","T2","T2","T2") #locais

Quero plotar um gráfico de barras que mostre a abundancia de cada espécie de forma empilhada por local. É possível?

Organizei os dados dessa forma para fazer o gráfico de médias com erro padrão, e deu certo.
avatar
diogojanuario

Mensagens : 2
Data de inscrição : 15/03/2018
Idade : 27
Localização : Cuiabá-MT

Ver perfil do usuário http://diogojanuario.blogspot.com

Voltar ao Topo Ir em baixo

Re: Gráfico com abundância empilhada

Mensagem por Prof. Marcos em Qui Maio 03, 2018 11:23 am

Olá, Diogo, tudo bem?

Desculpe a demora em responder. Sua mensagem acabou passando quando fiz a minha última passagem pelos tópicos.

Então, fiquei na dúvida a respeito dos dados que você colocou de exemplo. O que seria cada valor o objeto sp? Cada um seria a abundância de uma espécie diferente quando consideramos o mesmo local?

O ideal seria construir um exemplo como este a partir dos dados brutos, pois assim conseguimos pensar no passo a passo do começo ao fim.

Fiz um exemplo rápido e tosco, mas que pode ser mais ou menos o que você quer, confira:

Código:
#Criando exemplo:
dados<-structure(list(Local = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L), .Label = c("A", "B"), class = "factor"), sp1 = c(0L,
0L, 0L, 2L, 0L, 1L, 1L, 4L, 0L, 4L), sp2 = c(0L, 0L, 0L, 1L,
4L, 1L, 3L, 0L, 1L, 2L), sp3 = c(0L, 4L, 1L, 2L, 4L, 2L, 1L,
0L, 2L, 3L), sp4 = c(4L, 4L, 4L, 2L, 3L, 4L, 4L, 4L, 1L, 3L),
    sp5 = c(1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 2L, 4L)), class = "data.frame", row.names = c(NA,
-10L))

#Os dados:
dados

#Dividindo os dados por local:
dados.d<-split(dados, dados$Local)

#Calculando as abundâncias por local:
somas.A<-colSums(dados.d$A[,2:6])
somas.B<-colSums(dados.d$B[,2:6])

#Unindo em um objeto:
somas<-rbind(somas.A, somas.B)
somas

#Para a função barplot, temos que inverter, assim:
somas.t<-t(somas)  #t é de transpor
somas.t

barplot(somas.t)

Se for por aí, podemos elaborar melhor, ok?

Abraços!
avatar
Prof. Marcos

Mensagens : 347
Data de inscrição : 23/12/2015
Idade : 37
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum