Eixos e rótulos no R
Muitas funções de plotagem de alto nível (plot, hist, boxplot, etc.) permitem que você inclua opções de eixo e texto (bem como outros parâmetros gráficos). Por exemplo:
# Specify axis options within plot()
plot(x, y, main="title", sub="subtitle",
xlab="X-axis label", ylab="y-axix label",
xlim=c(xmin, xmax), ylim=c(ymin, ymax))
Para um controle mais preciso ou para modularização, você pode usar as funções descritas abaixo.
Títulos
Use a função title( )
para adicionar rótulos a um gráfico.
title(main="main title", sub="sub-title",
xlab="x-axis label", ylab="y-axis label")
Muitos outros parâmetros gráficos (como tamanho do texto, fonte, rotação e cor) também podem ser especificados na função title( )
.
# Add a red title and a blue subtitle. Make x and y
# labels 25% smaller than the default and green.
title(main="My Title", col.main="red",
sub="My Sub-title", col.sub="blue",
xlab="My X label", ylab="My Y label",
col.lab="green", cex.lab=0.75)
Anotações de texto
Você pode adicionar texto aos gráficos usando as funções text( )
e mtext( )
. text( )
coloca o texto dentro do gráfico, enquanto mtext( )
coloca o texto em uma das quatro margens.
text(location, "text to place", pos, ...)
mtext("text to place", side, line=n, ...)
As opções comuns são descritas abaixo.
opção | descrição |
localização | O local pode ser uma coordenada x,y. Como alternativa, o texto pode ser colocado interativamente por meio do mouse, especificando o local como locator(1). |
pos | posição relativa ao local. 1=abaixo, 2=esquerda, 3=acima, 4=direita. Se você especificar pos , poderá especificar offset= em porcentagem da largura do caractere. |
lado | em qual margem você colocará o texto. 1=inferior, 2=esquerda, 3=superior, 4=direita. Você pode especificar line= para indicar a linha na margem, começando com 0 e indo para fora. Você também pode especificar adj=0 para alinhamento esquerdo/inferior ou adj=1 para alinhamento superior/direito. |
Outras opções comuns são cex
, col
e font
(para tamanho, cor e estilo de fonte, respectivamente).
Pontos de rotulagem
Você pode usar a função text( )
(veja acima) para rotular o ponto, bem como para adicionar outras anotações de texto. Especifique o local como um conjunto de coordenadas x, y e especifique o texto a ser colocado como um vetor de rótulos. Os vetores x, y e rótulo devem ter o mesmo comprimento.
# Example of labeling points
attach(mtcars)
plot(wt, mpg, main="Milage vs. Car Weight",
xlab="Weight", ylab="Mileage", pch=18, col="blue")
text(wt, mpg, row.names(mtcars), cex=0.6, pos=4, col="red")
Anotações matemáticas
Você pode adicionar fórmulas matemáticas a um gráfico usando regras semelhantes às do TEX. Consulte help(plotmath)
para obter detalhes e exemplos.
Eixos
Você pode criar eixos personalizados usando a função axis( )
.
axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...)
onde
opção | descrição |
lado | um número inteiro que indica o lado do gráfico para desenhar o eixo (1=inferior, 2=esquerda, 3=superior, 4=direita) |
at | um vetor numérico que indica onde as marcas de tique devem ser desenhadas |
rótulos | um vetor de caracteres de rótulos a serem colocados nos tickmarks (se NULL, os valores at serão usados) |
pos | a coordenada na qual a linha do eixo deve ser desenhada. (ou seja, o valor no outro eixo onde ela cruza) |
lty | tipo de linha |
col | a cor da linha e da marca de escala |
las | os rótulos são paralelos (=0) ou perpendiculares (=2) ao eixo |
tck | comprimento da marca de tique como fração da região de plotagem (o número negativo está fora do gráfico, o número positivo está dentro, 0 suprime os tique-taques, 1 cria linhas de grade) o padrão é -0,01 |
(...) | outros parâmetros gráficos |
Se você for criar um eixo personalizado, deverá suprimir o eixo gerado automaticamente pela sua função de plotagem de alto nível. A opção axes=FALSE
suprime os eixos x e y. xaxt="n"
e yaxt="n"
suprimem os eixos x e y, respectivamente. Aqui está um exemplo (um tanto exagerado).
# A Silly Axis Example
# specify the data
x <- c(1:10); y <- x; z <- 10/x
# create extra margin room on the right for an axis
par(mar=c(5, 4, 4, 8) + 0.1)
# plot x vs. y
plot(x, y,type="b", pch=21, col="red",
yaxt="n", lty=3, xlab="", ylab="")
# add x vs. 1/x
lines(x, z, type="b", pch=22, col="blue", lty=2)
# draw an axis on the left
axis(2, at=x,labels=x, col.axis="red", las=2)
# draw an axis on the right, with smaller text and ticks
axis(4, at=z,labels=round(z,digits=2),
col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
# add a title for the right axis
mtext("y=1/x", side=4, line=3, cex.lab=1,las=2, col="blue")
# add a main title and bottom and left axis labels
title("An Example of Creative Axes", xlab="X values",
ylab="Y=X")
Pequenas marcas de tique
A função minor.tick( )
do pacote Hmisc adiciona pequenas marcas de escala.
# Add minor tick marks
library(Hmisc)
minor.tick(nx=n, ny=n, tick.ratio=n)
nx
é o número de marcas de escala menores a serem colocadas entre as marcas de escala maiores do eixo x. ny
faz o mesmo com o eixo y. tick.ratio
é o tamanho da marca de escala menor em relação à marca de escala maior. O comprimento da marca de escala principal é recuperado de par("tck")
.
Linhas de referência
Adicione linhas de referência a um gráfico usando a função abline( )
.
abline(h=yvalues, v=xvalues)
Outros parâmetros gráficos (como tipo de linha, cor e largura) também podem ser especificados na função abline( )
.
# add solid horizontal lines at y=1,5,7
abline(h=c(1,5,7))
# add dashed blue verical lines at x = 1,3,5,7,9
abline(v=seq(1,10,2),lty=2,col="blue")
Observação: Você também pode usar a função grid( )
para adicionar linhas de referência.
Legenda
Adicione uma legenda com a função legend()
.
legend(location, title, legend, ...)
Common options are described below.
opção | descrição |
localização | Há várias maneiras de indicar o local da legenda. Você pode fornecer uma coordenada x,y para o canto superior esquerdo da legenda. Você pode usar locator(1) e, nesse caso, usar o mouse para indicar o local da legenda. Você também pode usar as palavras-chave "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "bottomright" ou "center". Se você usar uma palavra-chave, talvez queira usar inset= para especificar um valor para mover a legenda para dentro do gráfico (como fração da região do gráfico). |
título | Uma cadeia de caracteres para o título da legenda (opcional) |
lenda | Um vetor de caracteres com os rótulos |
... | Outras opções. Se a legenda rotular linhas coloridas, especifique col= e um vetor de cores. Se a legenda rotular símbolos de pontos, especifique pch= e um vetor de símbolos de pontos. Se a legenda rotular a largura ou o estilo da linha, use lwd= ou lty= e um vetor de larguras ou estilos. Para criar caixas coloridas para a legenda (comum em gráficos de barras, caixas ou pizza), use fill= e um vetor de cores. |
Outras opções comuns de legenda incluem bty
para o tipo de caixa, bg
para a cor de fundo, cex
para o tamanho e text.col
para a cor do texto. A configuração horiz=TRUE
define a legenda horizontalmente em vez de verticalmente.
# Legend Example
attach(mtcars)
boxplot(mpg~cyl, main="Milage by Car Weight",
yaxt="n", xlab="Milage", horizontal=TRUE,
col=terrain.colors(3))
legend("topright", inset=.05, title="Number of Cylinders",
c("4","6","8"), fill=terrain.colors(3), horiz=TRUE)
Para saber mais sobre lendas, consulte help(legend)
. Os exemplos na ajuda são particularmente informativos.
Para praticar
Experimente o primeiro capítulo gratuito deste curso on-line de visualização de dados em R.
Este conteúdo foi extraído do site statmethods.net.