Gráficos de linhas no R
Visão geral
Os gráficos de linhas são criados com a função lines(x , y, type=), em que x e y são vetores numéricos de pontos (x,y) a serem conectados. type= pode assumir os seguintes valores:
tipo | descrição |
p | pontos |
l | lines |
o | pontos e linhas sobrepostos |
b, c | pontos (vazios se "c") unidos por linhas |
s, S | degraus da escada |
h | linhas verticais semelhantes a histogramas |
n | não produz nenhum ponto ou linha |
A função lines( ) adiciona informações a um gráfico. Ele não pode produzir um gráfico por si só. Normalmente, ele segue um comando plot(x , y) que produz um gráfico.
Por padrão, plot( ) plota os pontos (x,y). Use a opção type="n" no comando plot( ) para criar o gráfico com eixos, títulos, etc., mas sem plotar os pontos.
Exemplo
No código a seguir, cada uma das opções type= é aplicada ao mesmo conjunto de dados. O comando plot( ) configura o gráfico, mas não traça os pontos.
x <- c(1:5); y <- x # create some data
par(pch=22, col="red") # plotting symbol and color
par(mfrow=c(2,4)) # all plots on one page
opts = c("p","l","o","b","c","s","S","h")
for(i in 1:length(opts)){
heading = paste("type=",opts[i])
plot(x, y, type="n", main=heading)
lines(x, y, type=opts[i])
}
Em seguida, demonstramos cada uma das opções type= quando plot( ) configura o gráfico e _ faz _ plotar os pontos.
x <- c(1:5); y <- x # create some data
par(pch=22, col="blue") # plotting symbol and color
par(mfrow=c(2,4)) # all plots on one page
opts = c("p","l","o","b","c","s","S","h")
for(i in 1:length(opts){
heading = paste("type=",opts[i])
plot(x, y, main=heading)
lines(x, y, type=opts[i])
}
Como você pode ver, a opção type="c" só será diferente da opção type="b" se a plotagem de pontos for suprimida no comando plot( ).
Para demonstrar a criação de um gráfico de linhas mais complexo, vamos traçar o crescimento de 5 laranjeiras ao longo do tempo. Cada árvore terá sua própria linha distinta. Os dados são provenientes do conjunto de dados Orange.
# Create Line Chart
# convert factor to numeric for convenience
Orange$Tree <- as.numeric(Orange$Tree)
ntrees <- max(Orange$Tree)
# get the range for the x and y axis
xrange <- range(Orange$age)
yrange <- range(Orange$circumference)
# set up the plot
plot(xrange, yrange, type="n", xlab="Age (days)",
ylab="Circumference (mm)" )
colors <- rainbow(ntrees)
linetype <- c(1:ntrees)
plotchar <- seq(18,18+ntrees,1)
# add lines
for (i in 1:ntrees) {
tree <- subset(Orange, Tree==i)
lines(tree$age, tree$circumference, type="b", lwd=1.5,
lty=linetype[i], col=colors[i], pch=plotchar[i])
}
# add a title and subtitle
title("Tree Growth", "example of line plot")
# add a legend
legend(xrange[1], yrange[2], 1:ntrees, cex=0.8, col=colors,
pch=plotchar, lty=linetype, title="Tree")
Indo além
Experimente os exercícios deste curso sobre plotagem e visualização de dados em R.