Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| — | 02_tutoriais:tutorial5:start [2023/08/26 14:20] (atual) – criada - edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | <WRAP tabs> | ||
| + |   * [[02_tutoriais: | ||
| + |   * [[01_curso_atual: | ||
| + |   * [[03_apostila: | ||
| + | </ | ||
| + | ====== 5a. Criação e Edição de Gráficos no R====== | ||
| + | |||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | ===== Refletindo sobre a representação dos dados ===== | ||
| + | |||
| + | {{ youtube> | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Nesse tutorial iremos apresentar os conceitos para a produção de gráficos no R, baseados nos pacotes da distribuição base do R: '' | ||
| + | |||
| + | ===== Gráficos na Tela ===== | ||
| + | |||
| + | Existem vários dispositivos gráficos no R que estão relacionados a dois grupos principais: os dispositivos de tela e os de arquivos. Nos dispositivos base do '' | ||
| + | |||
| + | <code rsplus> | ||
| + | X11() | ||
| + | windows() | ||
| + | quartz() | ||
| + | |||
| + | </ | ||
| + | |||
| + | O '' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | **__O sistema do pacote__** <wrap hi> | ||
| + | |||
| + | {{ youtube> | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Funções de Alto Nível ===== | ||
| + | |||
| + | As funções gráficas de alto nível são aquelas que iniciam um dispositivo gráfico de tela e arranjam os elementos essenciais do gráfico no dispositivo. A principal função é a '' | ||
| + | |||
| + | /* | ||
| + | ===== Orientações Gerais ===== | ||
| + | |||
| + | Aqui são apenas dados os códigos e funções, para você executar e entender como funcionam. Para entender as funções, leia antes o capítulo correspondente na [[03_apostila: | ||
| + | */ | ||
| + | <WRAP center round box 100%> | ||
| + | |||
| + | ==== Criando Dados ==== | ||
| + | |||
| + | Vamos criar um conjunto de dados fictícios para apresentar em gráficos e conhecer as principais funções e conceitos associados a elaboração deles pelo '' | ||
| + | |||
| + |   * '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | riqueza <- c(15, 18, 22, 24, 25, 30, 31, 34, 37, 39, 41, 45) | ||
| + | capturas <- c(33, 62, 75, 100, 150, 155, 167, 170, 171, 177, 178, 179) | ||
| + | area <- c(2, 4.5, 6, 10, 30, 34, 50, 56, 60, 77.5, 80, 85) | ||
| + | conectada <- factor(c(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | Podemos usar esses vetores diretamente para fazer os gráficos. Entretanto, não é o que usualmente acontece. Quando fazemos a leitura de dados externos, os vetores das variáveis, normalmente, | ||
| + | |||
| + | <code rsplus> | ||
| + | frags <- data.frame(riq = riqueza, cap = capturas, ha = area, con = conectada)  | ||
| + | str(frags) | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Criando Gráficos ==== | ||
| + | |||
| + | No pacote '' | ||
| + | |||
| + |   * Nome ou posição dos argumentos: '' | ||
| + | |||
| + |   * Fórmula estatística: | ||
| + | |||
| + | Abaixo podemos ver os gráficos associados a cada uma das variáveis preditoras com a saída padrão das funções '' | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(x = area, y = riqueza) | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box 50%> | ||
| + | |||
| + | {{: | ||
| + | |||
| + | </ | ||
| + | |||
| + | <code rsplus> | ||
| + | boxplot(riq ~ con, data = frags)  | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box 50%> | ||
| + | |||
| + | {{: | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | |||
| + | Note que a primeira linha de código acima utilizou os objetos de vetores ('' | ||
| + | |||
| + | </ | ||
| + | ===== Editando Gráficos ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Parâmetros Locais e Globais ==== | ||
| + | |||
| + | |||
| + | A lógica dos gráficos no R é ajustá-los através de parâmetros que são estabelecidos antes ou durante a produção do gráfico. Os parâmetros globais devem ser modificados antes do gráfico ser iniciado pela função de alto nível. Os parâmetros locais são aqueles que podem ser modificados como argumentos dentro da função que produz o gráfico. Os parâmetros locais, muitas vezes, também podem ser modificados antes de iniciar o gráfico. Vamos ver como isso funciona! Primeiro vamos modificar localmente os parâmetros do tipo de símbolo grafado '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | plot(riq ~ ha, pch = 19, cex = 1.5, data = frags) | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | </ | ||
| + | |||
| + | Essa modificação é local e não fica registrada no dispositivo. Por outro lado, as modificações globais ficam armazenadas no dispositivo ativo e são modificadas antes da produção do gráfico, utilizando-se a função '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | par(pch = 19, cex = 1.5) | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | </ | ||
| + | |||
| + | O '' | ||
| + | |||
| + | Vamos abrir a documentação e fazer a leitura para nos familiarizarmos com tudo que está disponível para modificação no dispositivo gráfico. Ao final, irá entender porque tive que consultar o '' | ||
| + | |||
| + | <code rsplus> | ||
| + | help(par) | ||
| + | </ | ||
| + | |||
| + | Podemos acessar os valores dos parâmetros do dispositivo ativo, chamando a função '' | ||
| + | |||
| + | <code rsplus> | ||
| + | par( ) | ||
| + | par( )$pch | ||
| + | par( )$cex | ||
| + | </ | ||
| + | |||
| + | |||
| + | Note que o '' | ||
| + | Neste caso, para voltar ao padrão é necessário retornar o parâmetro para o valor inicial ou fechar o dispositivo, | ||
| + | |||
| + | <code rsplus> | ||
| + | par(pch = 1, cex = 1) | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | </ | ||
| + | |||
| + | |||
| + | São muitos parâmetros e lembrar todos os que foram modificados e seus valores padrão é uma tarefa complicada. Por essa razão, existe um procedimento particular à função '' | ||
| + | |||
| + | <code rsplus> | ||
| + | oldpar <- par(pch = 19, cex = 1.5) | ||
| + | oldpar | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | par(oldpar) | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | </ | ||
| + | |||
| + | |||
| + | Não são todos os parâmetros gráficos que podem ser modificados ou que se comportam da mesma maneira tanto localmente quanto globalmente. Por exemplo, o parâmetro '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | oldpar <- par(pch = 19, mfrow = c(1,2)) | ||
| + | oldpar | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | plot(riq ~ ha, data = frags, cex = 1.5) | ||
| + | par(oldpar) | ||
| + | </ | ||
| + | |||
| + | Por outro lado, o parâmetro '' | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(riq ~ ha, data = frags, cex = 2.5, pch = 16) | ||
| + | x11() | ||
| + | oldpar <- par(cex = 2.5) | ||
| + | plot(riq ~ ha, data = frags, pch = 16) | ||
| + | par(oldpar) | ||
| + | </ | ||
| + | |||
| + | No código acima o '' | ||
| + | |||
| + | |||
| + | |||
| + | ==== Parâmetros Vetorizados ==== | ||
| + | |||
| + | Os parâmetros associados à representação dos dados no gráfico, em geral, são vetorizados. Isso significa que podem ser individualizados, | ||
| + | |||
| + | <WRAP center round box 90%> | ||
| + | **__coRes__** | ||
| + | |||
| + | O R tem vários métodos para atribuição de cores. Os mais comuns são valores inteiros e o nome, veja alguns exemplos: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Use o comando '' | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Vamos usar então a representação de valores inteiros do quadro acima para definir cores para cada observação dos nossos dados: | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(riq ~ ha, data = frags, cex = 1.5, pch = 19, col = 1: | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | /* | ||
| + | =====Gráficos Múltiplos e Margens===== | ||
| + | |||
| + | O parâmetro '' | ||
| + | |||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | par(mfrow=c(2, | ||
| + | plot(riqueza~area) | ||
| + | boxplot(riqueza~conectada) | ||
| + | |||
| + | |||
| + | par(mfrow=c(1, | ||
| + | plot(riqueza~area) | ||
| + | boxplot(riqueza~conectada) | ||
| + | |||
| + | </ | ||
| + | |||
| + | Que pode ser combinado com '' | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | par(mfrow=c(2, | ||
| + | plot(riqueza~area) | ||
| + | boxplot(riqueza~conectada) | ||
| + | |||
| + | |||
| + | par(mfrow=c(1, | ||
| + | par(mar=c(14, | ||
| + | plot(riqueza~area) | ||
| + | boxplot(riqueza~conectada) | ||
| + | |||
| + | par(mfrow=c(1, | ||
| + | par(mar=c(8, | ||
| + | plot(riqueza~area) | ||
| + | par(mar=c(14, | ||
| + | boxplot(riqueza~conectada) | ||
| + | </ | ||
| + | |||
| + | */ | ||
| + | |||
| + | =====Inserindo mais Informações em Gráficos===== | ||
| + | |||
| + | Uma outra lógica dos gráficos no R é que os elementos grafados não são apagados, mas podemos inserir novos elementos que serão sobrepostos aos que já existem. Para inserirmos elementos utilizamos as funções subordinadas às funções de alto nível que só operam se houver um dispositivo ativo e com um gráfico iniciado. | ||
| + | |||
| + | A seguir apresentamos alguns exemplos de funções para se inserir informações em gráficos. | ||
| + | |||
| + | |||
| + | ==== lines() ==== | ||
| + | |||
| + | Função para inserir linhas retas ou curvas não-paramétricas utilizando alguma estimativa como '' | ||
| + | <code rsplus> | ||
| + | plot(cap ~ ha , data = frags) | ||
| + | lines(lowess(x = frags$ha, y = frags$cap))   | ||
| + | </ | ||
| + | |||
| + | /* | ||
| + | Um exemplo já conhecido: sobrepondo uma curva de densidade probabilística empírica a um histograma: | ||
| + | |||
| + | <code rsplus> | ||
| + | ##Duracao em minutos das erupções do Faithful Geiser, Yellowstone | ||
| + | ## Objeto faithful do pacote datasets | ||
| + | |||
| + | hist(faithful$eruptions, | ||
| + | lines(density(faithful$eruptions), | ||
| + | </ | ||
| + | ==== abline() ==== | ||
| + | |||
| + | Insira uma linha com intercepto e inclinação dados por números com | ||
| + | <code rsplus> | ||
| + | ##100 numeros de uma distribuicao uniforme entre 1 e 10 | ||
| + | x <- runif(100, 1, 10) | ||
| + | ## Os mesmos numeros somados a um ruído normal de media zero | ||
| + | ## e desvio-padrao um: | ||
| + | y <- x+rnorm(100) | ||
| + | ## | ||
| + | plot(y~x) | ||
| + | abline(0,1, col=" | ||
| + | </ | ||
| + | |||
| + | Agora veja o que acontece se o argumento da função '' | ||
| + | <code rsplus> | ||
| + | modelo <- lm(riqueza~area) | ||
| + | plot(riqueza~area) | ||
| + | abline(modelo) | ||
| + | </ | ||
| + | |||
| + | E há ainda os argumentos '' | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(riqueza~area) | ||
| + | abline(v=mean(area)) | ||
| + | abline(h=mean(riqueza)) | ||
| + | </ | ||
| + | |||
| + | **Você sabia?** A reta da regressão linear simples sempre passa pelo ponto que é a interseção destas duas linhas.  | ||
| + | */ | ||
| + | ==== points() ==== | ||
| + | |||
| + | Para inserir novos pontos no gráfico: | ||
| + | |||
| + | <code resplus> | ||
| + | plot(riq ~ ha, data = frags, pch = 19, col = 1: | ||
| + | points(riq ~ ha, data = frags, cex = 1.8) | ||
| + | </ | ||
| + | |||
| + | ==== text() ==== | ||
| + | |||
| + | Função utilizada para inserir caracteres dentro do gráfico. O texto pode ser letras, símbolos, palavras ou até mesmo uma frase. Lembre-se sempre que essas funções, em geral, são vetorizadas e podem inserir vários elementos de uma única vez, por exemplo, identificando cada observação: | ||
| + | |||
| + | <code rsplus> | ||
| + | text(x = 70, y = 31, labels = "<- olha esse dados!" | ||
| + | text(x = frags$ha, y = frags$riq + 1.1, labels = LETTERS[1: nrow(frags)], | ||
| + | </ | ||
| + | |||
| + | /* | ||
| + | Você pode usar esta função para identificar pontos em seu gráfico, ou plotar rótulos ao invés de pontos: | ||
| + | |||
| + | <code rsplus> | ||
| + | require(MASS)# | ||
| + | head(Animals)# | ||
| + | plot(brain~body, | ||
| + | text(y=Animals$brain, | ||
| + | </ | ||
| + | |||
| + | ==== mtext() ==== | ||
| + | Esta função acrescenta texto nas margens do gráfico ou da janela gráfica. Consulte a página de ajuda para entender seus argumentos  | ||
| + | <code rsplus> | ||
| + | plot(riqueza~area) | ||
| + | mtext(" | ||
| + | </ | ||
| + | |||
| + | ==== par(new=TRUE) ==== | ||
| + | Comando para sobrepor um novo gráfico a um gráfico já existente. Execute-o e compare com o obtido com o comando '' | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(riqueza~area) | ||
| + | par(new=TRUE) | ||
| + | plot(abundancia~area) | ||
| + | </ | ||
| + | |||
| + | ==== axis() ==== | ||
| + | Para se inserir um eixo novo. Esta função é bastante usada nos casos em que se deseja ter dois gráfico dentro de uma mesma figura (ver '' | ||
| + | ou então se deseja controlar muitos dos parâmetros dos eixos (como em '' | ||
| + | <code rsplus> | ||
| + | plot(riqueza~area) | ||
| + | par(new=TRUE) | ||
| + | plot(abundancia~area, | ||
| + | axis(4) ## adiciona eixo | ||
| + | </ | ||
| + | |||
| + | */ | ||
| + | |||
| + | ==== arrows(), rect(), polygon(), segments() ... ==== | ||
| + | |||
| + | São muitas funções acessórias que inserem novos elementos nos gráficos, não faz sentido passar por todas aqui, vamos usar mais uma para apresentar uma outra forma de usar cores no R: | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | rect(xleft = 25, ybottom = 22, xright = 41, ytop = 32, col = rgb(red = 1,green= 0, blue = 0, alpha = 0.1)) | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP center round box 90%> | ||
| + | __**coRes**__ | ||
| + | |||
| + | Um outro método para indicar cores no R é o [[https:// | ||
| + | |||
| + | {{  : | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Ajustando o Gráfico ===== | ||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | |||
| + | ==== Um exemplo ==== | ||
| + | |||
| + | {{ youtube> | ||
| + | |||
| + | </ | ||
| + | |||
| + | Agora que conhecemos os princípios da construção de gráficos utilizando o '' | ||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | X11(width = 14, height = 7) | ||
| + | par(mfrow = c(1, 2)) | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | boxplot(riq ~ con, data = frags, col = " | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP center round box 90%> | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Vamos seguir ajustando os elementos dos gráficos. Primeiro, ajustando alguns parâmetros globais com o '' | ||
| + | |||
| + | ^ argumento ^ elemento ^ valor padrão ^ representação ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | X11(width = 14, height = 7) | ||
| + | par(mfrow = c(1, 2), mar = c(4, 4, 1, 1), family = " | ||
| + | plot(riq ~ ha, data = frags) | ||
| + | boxplot(riq ~ con, data = frags, col = " | ||
| + | </ | ||
| + | |||
| + | |||
| + | Agora vamos ajustar o primeiro gráfico utilizando algumas dos parâmetros locais na própria função '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + |   * '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | X11(width = 14, height = 7) | ||
| + | par(mfrow = c(1, 2), mar = c(4, 4, 1, 1), family = " | ||
| + | las = 1, mgp = c(2.5, 0.8, 0), cex = 1.2 ) | ||
| + | plot(riq ~ ha, data = frags, xlab = "Área (ha)", ylab = " | ||
| + |                   cex.lab = 1.5, cex.axis = 1.2, bty = " | ||
| + |                   pch = c(15, 16, 17)[frags$con],  | ||
| + |                   col = c(" | ||
| + | boxplot(riq ~ con, data = frags) | ||
| + | </ | ||
| + | |||
| + | Note a indexação que foi feita no '' | ||
| + | |||
| + | <code rsplus> | ||
| + | c(15, 16, 17)[frags$con] | ||
| + | c(" | ||
| + | </ | ||
| + | |||
| + | Como '' | ||
| + | |||
| + | Agora vamos inserir uma legenda para as cores e símbolos: | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | X11(width = 14, height = 7) | ||
| + | par(mfrow = c(1, 2), mar = c(4, 4, 1, 1), family = " | ||
| + | las = 1, mgp = c(2.5, 0.8, 0), cex = 1.2 ) | ||
| + | plot(riq ~ ha, data = frags, xlab = "Área (ha)", ylab = " | ||
| + |       | ||
| + |      pch = c(15, 16, 17)[frags$con],  | ||
| + |      col = c(" | ||
| + | legend(x = 60, y = 20, legend = c(" | ||
| + |        col = c(" | ||
| + | |||
| + | boxplot(riq ~ con, data = frags, col = " | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box 90%> | ||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | |||
| + | O procedimento normalmente é esse. Vamos ajustando os parâmetros e avaliando o resultado até conseguir o resultado almejado. Satisfeito com o primeiro painel, podemos passar para o segundo. Da mesma forma que o primeiro painel, os parâmetros gráficos globais que não podem ser modificados localmente, devem ser modificados antes de executar a função de alto nível. | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | X11(width = 14, height = 7) | ||
| + | par(mfrow = c(1, 2), mar = c(4, 4, 1, 1), family = " | ||
| + | plot(riq ~ ha, data = frags, xlab = "Área (ha)", ylab = " | ||
| + | legend(x = 60, y = 20, legend = c(" | ||
| + | par(bty = " | ||
| + | boxplot(riq ~ con, data = frags, ylim = c(12, 45), ann = FALSE, xaxt = " | ||
| + | </ | ||
| + | |||
| + | No código do diagrama de caixas acima, para ter mais controle sobre título e legendas dos eixos, solicitamos na função que estes não fossem grafados. Agora podemos incluir esses elementos utilizando a função '' | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | X11(width = 14, height = 7) | ||
| + | par(mfrow = c(1, 2), mar = c(4, 4, 1, 1), family = " | ||
| + | plot(riq ~ ha, data = frags, xlab = "Área (ha)", ylab = " | ||
| + | legend(x = 60, y = 20, legend = c(" | ||
| + | par(bty = " | ||
| + | boxplot(riq ~ con, data = frags, ylim = c(12, 45), ann = FALSE, xaxt = " | ||
| + | mtext(text = c(" | ||
| + | mtext(" | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box 90%> | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Estando satisfeito com o resultado, podemos salvar o gráfico que está no dispositivo de tela ativo em nosso diretório, utilizando a função '' | ||
| + | |||
| + | <code resplus> | ||
| + | savePlot(filename = " | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Dispositivos de Arquivos ===== | ||
| + | |||
| + | A função '' | ||
| + | Para utilizá-los é preciso abrir o dispositivo, | ||
| + | |||
| + | <code rsplus> | ||
| + | graphics.off() | ||
| + | jpeg(filename = " | ||
| + | par(mfrow = c(1, 2), mar = c(4, 4, 1, 1), family = " | ||
| + | plot(riq ~ ha, data = frags, xlab = "Área (ha)", ylab = " | ||
| + | legend(x = 60, y = 20, legend = c(" | ||
| + | par(bty = " | ||
| + | boxplot(riq ~ con, data = frags, ylim = c(12, 45), ann = FALSE, xaxt = " | ||
| + | mtext(text = c(" | ||
| + | mtext(" | ||
| + | dev.off() | ||
| + | |||
| + | </ | ||
| + | |||
| + | /* | ||
| + | Verifique em seu diretório de trabalho se há agora uma figura //jpg// com o nome " | ||
| + | Agora abra um dispositivo gráfico cria arquivos com numeração sequencial, envie para ele dois gráficos e feche o dispositivo: | ||
| + | <code rsplus> | ||
| + | png(" | ||
| + | plot(riqueza~area) | ||
| + | boxplot(riqueza~conectada) | ||
| + | dev.off() | ||
| + | </ | ||
| + | */ | ||
| + | <WRAP center round tip 70%> | ||
| + | |||
| + | **__Gerenciando dispositivos__** | ||
| + | |||
| + | |||
| + | Os dispositivos abertos são definidos por uma numeração sequencial e o seu tipo. Para gerenciar os dispositivos abertos utilizamos as funções da família '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | /* | ||
| + | |||
| + | ===== Manipulação de dispositivos gráficos===== | ||
| + | |||
| + | Feche toda as janelas de gráficos do R e execute um comando '' | ||
| + | <code rsplus> | ||
| + | plot(riqueza~area) | ||
| + | </ | ||
| + | |||
| + | Agora abra um novo dispositivo gráfico de tela: | ||
| + | |||
| + | <code rsplus> | ||
| + | > x11() | ||
| + | </ | ||
| + | |||
| + | Uma nova janela gráfica em branco se abrirá, na margem superior da qual você verá a indicação de que agora este é o dispositivo ativo, //e.g.//: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Verifique que agora o dispositivo ativo é o de número 3, e ative o dispositivo 2: | ||
| + | <code rsplus> | ||
| + | dev.cur() | ||
| + | dev.set(which=2) | ||
| + | </ | ||
| + | |||
| + | Agora um dispositivo gráfico png e outro pdf: | ||
| + | <code rsplus> | ||
| + | png(" | ||
| + | pdf(" | ||
| + | </ | ||
| + | |||
| + | Quantos dispositivos estão abertos? Obtenha a lista com | ||
| + | <code rsplus> | ||
| + | dev.list() | ||
| + | </ | ||
| + | |||
| + | Mas apenas um está ativo, isto é, recebe a saída dos comandos gráficos. Descubra qual é com | ||
| + | <code rsplus> | ||
| + | dev.cur() | ||
| + | </ | ||
| + | |||
| + | E altere para o dispositivo 3 com | ||
| + | <code rsplus> | ||
| + | dev.set(3) | ||
| + | dev.cur() # | ||
| + | </ | ||
| + | |||
| + | Agora experimente fechar dispositivos com o comando '' | ||
| + | |||
| + | <code rsplus> | ||
| + | dev.list() | ||
| + | dev.cur() | ||
| + | dev.off() # quem foi fechado? | ||
| + | dev.list() # verificando | ||
| + | dev.cur() # e quem é o ativo agora? | ||
| + | </ | ||
| + | */ | ||
| + | ===== Próximos passos ===== | ||
| + | |||
| + | Para mais informações sobre a edição de gráficos siga para o capítulo da apostila [[03_apostila: | ||
| + | Além disso, o tutorial [[02_tutoriais: | ||
| + | |||
| + | /* Nesse wiki focamos no uso das ferramentas básicas do R e nesse tutorial no pacote '' | ||
| + | |||
| + | Existem muitos bons tutoriais sobre o '' | ||
| + |    | ||
| + | |||
| + |   * [[https:// | ||
| + | */ | ||
| + | |||
| + | |||
| + | |||