Curso
Plot character, ou pch, é o argumento padrão para definir o caractere que será desenhado em várias funções do R.
Você pode adicionar texto explicativo a um gráfico de diversas formas: rótulos dos eixos, títulos, legendas ou texto diretamente no gráfico. As funções base de gráficos no R normalmente criam rótulos dos eixos por padrão, mas isso pode ser substituído usando os argumentos xlab(), para informar o rótulo do eixo x, e ylab(), para o rótulo do eixo y.
Algumas funções base também geram títulos padrão, que novamente podem ser substituídos, como vemos aqui:
library(MASS)
par(mfrow = c(1, 2))
plot(density(geyser$waiting))
plot(density(geyser$waiting), main = "Estimated density: \n Old Faithful waiting times")

O gráfico à esquerda usa o título padrão retornado pela função density, indicando que o gráfico foi gerado por essa função com suas opções padrão e também mostra a especificação em R da variável cuja densidade está sendo plotada. No gráfico da direita, esse título padrão foi substituído ao informar o argumento opcional main. Note que, ao incluir o caractere de quebra de linha, barra invertida n, criamos um título de duas linhas dentro dessa string.
text() function
Assim como as funções de linhas e pontos, text é uma função de baixo nível que permite adicionar texto explicativo a um gráfico já existente. Para isso, é preciso especificar os valores de x e y, as coordenadas no gráfico onde o texto deve aparecer, e labels, um vetor de caracteres com o texto a ser adicionado.
text(x, y, adj)

Por padrão, o texto adicionado ao gráfico fica centralizado nos valores de x informados, mas o argumento opcional adj pode ser usado para alterar o alinhamento.
Vale notar que o argumento adj da função text() determina a posição horizontal do texto e pode receber qualquer valor entre 0 (alinhado à esquerda) e 1 (alinhado à direita). Na verdade, ele pode até receber valores fora desse intervalo. Por exemplo, um valor negativo faz o texto começar à direita da posição x especificada. Da mesma forma, valores de adj maiores que 1 fazem o texto terminar à esquerda da posição x.
library(MASS)
plot(UScereal$fibre)
text(5, 28, "<-- Outliers [left-justified text at (5, 28)]", adj = 0)
text(65, 23, "[Right-justified text at (65, 23)]", adj = 1, col = "red")
text(5, 28, "[Centered text (default) at (31, 18)]", col = "blue")

Fontes, orientações e outros recursos de texto
A seguir, veja algumas formas de alterar a aparência do texto adicionado por meio de argumentos opcionais da função text. Por padrão, o texto é criado na horizontal, mas isso pode ser mudado com o argumento srt, que define o ângulo de orientação em relação ao eixo horizontal.
No exemplo, o texto em vermelho fica inclinado para cima ao definirmos srt como o valor positivo de 30 graus, enquanto o texto em verde se inclina para baixo com srt igual a -45.
Também é possível definir a cor do texto com o argumento col, e o texto em vermelho mostra que dá para mudar o tamanho com o argumento cex. Com cex = 1.2, deixamos o texto 20% maior que o normal.
Outra característica alterada no exemplo é a fonte, definida pelo argumento font. O valor padrão é font = 1, que indica texto normal; font = 2 deixa em negrito; font = 3 em itálico; e font = 4 aplica negrito e itálico.
library(MASS)
plot(Boston$rad)
# "Inner city" com cor e rotação ajustadas
text(350, 24, adj = 1, "Inner city? -->", srt = 30, font = 2, cex = 1.2, col = "red")
# "Suburbs" com cor e rotação ajustadas
text(100, 15, "Suburbs? -->", srt = -45, font = 3, col = "green")
title("Text with varying orientations, fonts, sizes & colors")

Ajustando posição, tamanho e fonte do texto
No exemplo a seguir, você vai:
- Criar um gráfico de
MPG.cityvs.Horsepowerdo data frameCars93, com os dados representados por círculos vazados (pchpadrão). - Construir a variável
index3usando a funçãowhich()para identificar as linhas que contêm todos os carros de 3 cilindros. - Usar a função
points()para destacar círculos sólidos,pch = 16, sobre todos os pontos do gráfico que representam carros de 3 cilindros. - Usar a função
text()com a variávelMake, como antes, para adicionar rótulos à direita dos carros de 3 cilindros; agora useadj = 0.2para empurrar os rótulos mais para a direita, o argumentocexpara aumentar o tamanho em 20% efontpara deixar os rótulos em negrito itálico.
# Gráfico de MPG.city vs. Horsepower com círculos vazados
plot(Cars93$Horsepower, Cars93$MPG.city)
# Criar index3, apontando para carros de 3 cilindros
index3 <- which(Cars93$Cylinders == 3)
# Destacar carros de 3 cilindros com círculos sólidos
points(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
pch = 16)
# Adicionar nomes dos carros, deslocados dos pontos, com texto maior em negrito itálico
text(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
Cars93$Make[index3],
adj = -0.2, cex = 1.2, font = 4)
Ao executar o código acima, você verá o seguinte resultado:

Para saber mais sobre como adicionar texto a gráficos, confira este vídeo do nosso curso Data Visualization in R.
Este conteúdo foi extraído do curso Data Visualization in R da DataCamp, por Ronald Pearson.
