Programa R para Biologia da Conservação
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Gráficos - Webinário #3

2 participantes

Ir para baixo

Gráficos - Webinário #3 Empty Gráficos - Webinário #3

Mensagem por Carlos Augusto Correa Seg Jul 22, 2019 6:45 pm

Professor Marcos,

Estou mandando minhas dúvidas para o webnario de mais tarde.
Estou acompanhando e gostando muito das aulas, mas ainda tenho dificuldade para editar certos gráficos.
Algumas dúvidas eu já mandei em outras perguntas no fórum. Achei mais fácil juntar aqui

1. Teria como selecionar a fonte das palavras geradas nos gráficos (ex: times new roman)?

GRÁFICO DE DISPERSÃO -------------------------------------

2. Como mudar o formato dos pontos por categoria? (pch)

Exemplo da tabela Sanhacos.txt (atividade módulo 3)
Eu gostaria que os pontos do cultivo agroflorestal tivessem cor e formato diferentes do cultivo comum (ex: bola e triangulo)

Usei:
levels(dados$Cultivo)
cores<-c("gray", "gray1")
plot(dados$Produtividade~dados$Adubo, xlab="Quantidade de adubo utilizado", ylab="Produção de frutos", las=1, pch=16, col=cores[dados$Cultivo])
legend("topleft", pch=16, col=cores, legend=c("Agroflorestal", "Comum"))

Eu tentei mudar o plot assim:
plot(dados$Produtividade~dados$Adubo, xlab="Quantidade de adubo utilizado", ylab="Produção de frutos", col=cores, pch=c(15, 16), las=1, col=cores[dados$Cultivo])
NÃO DEU CERTO!


GRÁFICO DE BARRAS ----------------------------------

3. Como gerar a linha do eixo x? (ligando y e x no zero)
Exemplo da tabela Sanhacos.txt (atividade módulo 3)

Usei:
levels(dados$Sanhaco)
cores<-c("Gray", "Gray1")
barplot(tabela.prop, beside = TRUE, ylim=c(0, 1), las=1, xlab="Melastomatacea", ylab = "Ocorrência de sanhacos", col=cores, main = "Sanhacos na UFV")
legend("topright", legend=levels(dados$Sanhaco), col=cores, pch=15, title="Sanhacos")

Qual comando preciso?

4. Da para fazer esse tipo de gráfico para dados contínuos por categóricos?
Estou pensando em um gráfico de barras sem usar tabela de contingencia, como substituto para o grafico de medias.

5. Daria para selecionar categorias dentro da comparação?
Ex: Testar se a riqueza de guildas (ou grupos funcionais) de insetos entre três áreas.
Usei isso na minha graduação, mas fiz no Excel.

Exemplo:
Gráficos - Webinário #3 Grafic15

Obrigado

Carlos Augusto Correa

Mensagens : 22
Data de inscrição : 31/05/2019
Idade : 34

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Seg Jul 22, 2019 7:57 pm

Opa, excelente sequência de perguntas, Carlos!

Vou responder aos poucos, comentar no webnário e ir respondendo cada ponto aqui, ok? Talvez nem todas sejam respondidas até o fim do webnário, mas eu continuo durante a semana.
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Seg Jul 22, 2019 8:28 pm

1. Ajustando a fonte do gráfico


Podemos usar o argumento family para incluir uma fonte desejada.
Exemplo, com Times:

Código:
plot(rnorm(10), family="serif")
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Seg Jul 22, 2019 8:41 pm

2. Formato dos pontos por categorias


Versão corrigida, que faz o que você quer:

Código:
levels(dados$Cultivo)
cores<-c("gray", "gray1")
simbolos<-c(15, 16)

plot(dados$Produtividade~dados$Adubo, xlab="Quantidade de adubo utilizado",
ylab="Produção de frutos", pch=simbolos[dados$Cultivo],
las=1, col=cores[dados$Cultivo])

Duas coisas: o argumento col estava aparecendo duas vezes; e precisamos adicionar os colchetes depois dos símbolos para que eles tenham a associação correta.
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Seg Jul 22, 2019 8:47 pm

3. Como gerar a linha do eixo x? (ligando y e x no zero)


Basta, depois do gráfico estar pronto, adicionar o comando:

Código:
box(bty="l")

bty determina o tipo de caixa, e neste caso queremos uma caixa em "L".
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Ter Jul 23, 2019 10:33 am

4. Gráficos de barras com médias


Beleza, voltei aqui com um script bem cru, mas que serve de base para criamos uma gráfico de médias usando barras no lugar dos pontos. Lá vai:

Código:
data(iris)

medias<-tapply(iris$Sepal.Length, iris$Species, mean)
desvios<-tapply(iris$Sepal.Length, iris$Species, sd)

grafico<-barplot(medias, col="gray", ylim=c(0, 10))
arrows(grafico, medias-desvios, grafico, medias+desvios, code=3, angle=90)
box(bty="l")

Podemos editar, melhorar, refinar, etc. Mas a base é esta. Wink

Depois eu volto e continuamos, mas já quis me adiantar e deixar uma resposta preliminar que já pode ser útil.
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Ter Jul 23, 2019 10:55 am

Um adendo!

No comando anterior, se quisermos podemos manipular a largura das barras, o espaço entre elas e o tamanho dos "whiskers" com os erros. Tá aqui um exemplo onde mexo em todas essas coisas, vai ajudar a chegarmos num gráfico esteticamente agradável:

Código:
data(iris)

medias<-tapply(iris$Sepal.Length, iris$Species, mean)
desvios<-tapply(iris$Sepal.Length, iris$Species, sd)

grafico<-barplot(medias, col="gray", ylim=c(0, 10), width = 0.1, xlim=c(0,0.8), space=1)
arrows(grafico, medias-desvios, grafico, medias+desvios, code=3, angle=90, length=0.05)
box(bty="l")

Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Respondendo o webnario 3

Mensagem por Carlos Augusto Correa Qua Jul 24, 2019 12:01 am

Professor Marcos,
Obrigado por suas respostas

Gostaria de saber se tem alguma data para lançar no site o webnario 3 para baixar?
Peguei a ideia, mas queria rever as respostas.

Respondendo cada pergunta

1. A número 1 deu certo. Eu consegui mudar a fonte pelo argumento family="serif", porém fica menor.
Teria como mudar o tamanho da letra também?

2. A número 2 deu parcialmente certo, porém a legenda ficou menor e com uma letra diferente que a dos eixos.
Eu tentei colocar family="serif" na legenda, mas deu errado.

Comandos:
levels(dados$Cultivo)
cores<-c("gray", "gray1")
simbolos<-c(15, 16)
plot(dados$Produtividade ~ dados$Adubo, xlab="Quantidade de adubo utilizado", ylab="Produção de frutos", pch=simbolos[dados$Cultivo], las=1, col=cores[dados$Cultivo], family="serif", bty="l")
legend("topleft", pch=simbolos, col=cores, legend=c("Agroflorestal", "Comum"), family="serif")

Error in legend("topleft", pch = simbolos, col = cores, legend = c("Agroflorestal",  :
 unused argument (family = "serif")


Gráfico de dispersão (tirei o family="serif" da legenda)
Gráficos - Webinário #3 Disper10

3. A numero 3 deu certo!

Observação: aqui não deu para eu colocar bty="l" como argumento do comando barplot,
No entanto, colocando box(bty="l") como um comando a mais deu certo.
Já no gráfico de dispersão (anterior) eu usei bty="l" como argumento do comando e deu certo.

Usei:
levels(dados$Sanhaco)
cores<-c("Gray", "Gray1")
barplot(tabela.prop, beside = TRUE, ylim=c(0, 1), las=1, xlab="Melastomatacea", ylab = "Ocorrência de sanhacos", col=cores, main = "Sanhacos na UFV")
box (bty="l")
legend("topright", legend=levels(dados$Sanhaco), col=cores, pch=15, title="Sanhacos")

Gráfico de barras
Gráficos - Webinário #3 Barras10



Obrigado

Carlos Augusto Correa

Mensagens : 22
Data de inscrição : 31/05/2019
Idade : 34

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Qua Jul 24, 2019 11:36 am

Oi de novo, Carlos

Que bom que avançamos!

Vamos lá:

1 - alterando o tamanho da fonte


Para alterar o tamanho da fonte dos diferentes elementos do gráfico, use o argumento cex e/ou suas variantes: cex.axis, cex.lab, cex.main e cex.sub. Cada um controla o tamanho de um elemento diferente. Eles funcionam como um multiplicador. Por exemplo, cex=2 faz a fonte ter o dobro do tamanho. Você pode usar casas decimais, e até mesmo usar valores menores que 1 quando quiser diminuir o tamanho da fonte.

Depois volto e continuo a responder, certinho?
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Prof. Marcos Qui Jul 25, 2019 9:59 am

Opa, de volta aqui.

2. Alterando a fonte da legenda

Para isso podemos definir os parâmetros gráficos antes dele ser criado, usando a função par(). Veja o exemplo:

Código:
data(iris)

par(family="serif")
plot(iris$Sepal.Length, iris$Petal.Length, col=c(2:4)[iris$Species], pch=16)
legend("topleft", pch=16, col=c(2:4), legend=levels(iris$Species))

Abraços!
Prof. Marcos
Prof. Marcos

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

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Carlos Augusto Correa Qui Jul 25, 2019 3:17 pm

Opa! Agora deram certo!!
Obrigado. Cool

Carlos Augusto Correa

Mensagens : 22
Data de inscrição : 31/05/2019
Idade : 34

Ir para o topo Ir para baixo

Gráficos - Webinário #3 Empty Re: Gráficos - Webinário #3

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos