Modificar rótulos de marcação do eixo X do ggplot em R
-
Use
scale_x_discrete
para modificar as etiquetas de marcação do eixo Xggplot
em R -
Use
scale_x_discrete
com função personalizada para modificar as etiquetas de marcação do eixo Xggplot
em R
Este artigo irá apresentar como modificar os rótulos de escala do eixo x ggplot
em R.
Use scale_x_discrete
para modificar as etiquetas de marcação do eixo X ggplot
em R
scale_x_discrete
junto com scale_y_discrete
são usados para manipulação avançada de rótulos e limites de escala de plotagem. Neste caso, utilizamos scale_x_discrete
para modificar os rótulos de escala do eixo x
para objetos ggplot
. Observe que o primeiro objeto ggplot
é um gráfico de barras baseado no conjunto de dados diamantes
. O gráfico usa a coluna cut
e plota a contagem de cada tipo no eixo y
. O eixo x
tem o título padrão -cut
, que pode ser modificado passando a string como o primeiro argumento de scale_x_discrete
. Como alternativa, podemos passar valores de string específicos para cada rótulo, construindo um vetor e atribuindo-o ao parâmetro rótulos
. Ambos os gráficos são desenhados lado a lado usando a função grid.arrange
, parte do pacote gridExtra
.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
grid.arrange(p1, p2, ncol = 2)
Outro método útil para modificar os rótulos no eixo x
é passar um objeto de função como um parâmetro labels
. O próximo trecho de código usa a função abbreviate
para encurtar automaticamente os rótulos e, em seguida, desenhar gráficos como duas colunas.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
p3 <- p1 + scale_x_discrete("Cut Type", labels = abbreviate)
grid.arrange(p2, p3, ncol = 2)
scale_x_discrete
funciona de forma semelhante em gráficos diferentes, e a técnica de manipulação de rótulo é aplicável, conforme mostrado no exemplo a seguir. Ou seja, vários gráficos de dispersão são extraídos do conjunto de dados mpg
.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point()
p2 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point() +
scale_x_discrete(labels = abbreviate)
p3 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point(colour = "blue") +
scale_x_discrete(labels = abbreviate)
grid.arrange(p1, p2, p3, nrow = 3)
Use scale_x_discrete
com função personalizada para modificar as etiquetas de marcação do eixo X ggplot
em R
O parâmetro scale_x_discrete
labels
pode usar um objeto de função personalizada para modificar cada etiqueta de escala de acordo. Neste caso, implementamos a função capitalize_all
que abrevia cada rótulo primeiro e depois converte o caractere inicial da string em letra maiúscula. Observe que as funções integradas paste
,toupper
, substring
e abbreviate
são utilizadas para implementar a funcionalidade capitalize_all
, mas uma revisão completa desses métodos está fora do escopo deste artigo. As páginas do manual podem ser exibidas usando a notação ?function_name
no console R.
library(ggplot2)
library(gridExtra)
capitalize_all <- Vectorize(function(x) {
s <- abbreviate(x)
paste(toupper(substring(s, 1,1)), substring(s, 2), sep="", collapse=" ")
})
ggplot(mpg, aes(manufacturer, cty)) + geom_point(aes(colour = trans)) +
scale_x_discrete(labels = capitalize_all)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook