Como estabelecer limites de eixos em parcelas ggplot2 R

Gustavo du Mortier 16 fevereiro 2024
  1. Definir limites do eixo x com scale_x_continuous em ggplot2
  2. Utilize coord_cartesian para limitar ambos os eixos em ggplot2
Como estabelecer limites de eixos em parcelas ggplot2 R

Vamos ver primeiro o nosso gráfico de dispersão sem colocar qualquer limite ao eixo. Neste exemplo, utilizamos o array de dados Iris para correlacionar os valores de largura sépala e largura sépala, categorizando as espécies por cor. Antes de chamar a função ggplot, precisamos de instalar o pacote ‘ggplot2’ e carregar a biblioteca correspondente:

install.packages("ggplot2")
library(ggplot2)
scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) 
scatter + geom_point(aes(color=Species, shape=Species)) +
 ylab("Sepal Width") + xlab("Sepal Length") +
 ggtitle("Correlation of Sepal Length & Width by species")

Resultado:

R ggplot2 Scatter-plot-plot-without-axis-limits

Agora, suponhamos que queremos limitar o eixo x (Comprimento do Sepal) para que a parcela mostre apenas a região entre x=5 e x=7. Temos duas opções para o fazer: utilizar scale_x_continuous ou utilizar coord_cartesian.

A opção scale_x_continuous remove todos os pontos de dados que se situam fora do intervalo especificado para o eixo em questão, enquanto que a opção coord_cartesian apenas ajusta a área visível. Na maior parte dos casos, ambas as opções produzirão os mesmos resultados. Mas se por acaso se ajustar algo aos dados, os valores ajustados provavelmente mudariam.

Definir limites do eixo x com scale_x_continuous em ggplot2

Para utilizar scale_x_continuous, é necessário especificar um vector com os limites inferior e superior do eixo x, como este:

scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) 
scatter + geom_point(aes(color=Species, shape=Species)) +
 ylab("Sepal Width") + xlab("Sepal Length") +
 ggtitle("Correlation of Sepal Length & Width by species") +
 scale_x_continuous(limits = c(5, 7))

Resultado:

R ggpolot2 - gráfico de dispersão com limites dos eixos

Receberá também uma mensagem de aviso dizendo-lhe quantos pontos de dados são eliminados do gráfico:

Warning message:
Removed 34 rows containing missing values (geom_point).

Caso queira também limitar o eixo y, pode adicionar scale_y_continuous da mesma forma, como neste exemplo:

![Scatter-plot-with-limits-both-axis](C:\GDM\Cosas\UpWork\Dishan Consultancy\R\Scatter-plot-with-limits-both-axis.jpg)scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) 
scatter + geom_point(aes(color=Species, shape=Species)) +
  ylab("Sepal Width") + xlab("Sepal Length") +
  ggtitle("Correlation of Sepal Length & Width by species") +
  scale_x_continuous(limits = c(5, 7)) +
  scale_y_continuous(limits = c(2.5, 4))

A saída mostrará os limites em ambos os eixos:

R ggpolot2 - Gráfico de dispersão com limites em ambos os eixos

Também se pode utilizar as funções de estenografia xlim e ylim em vez de scale_x_continuous e scale_y_continuous para tornar o comando um pouco mais curto:

scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) 
scatter + geom_point(aes(color=Species, shape=Species)) +
  ylab("Sepal Width") + xlab("Sepal Length") +
  ggtitle("Correlation of Sepal Length & Width by species") +
  xlim(5, 7) + ylim(2.5, 4)

Utilize coord_cartesian para limitar ambos os eixos em ggplot2

Se quiser utilizar coord_cartesian em vez de scale_x_continuous e scale_y_continuous, o comando seria assim:

scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) 
scatter + geom_point(aes(color=Species, shape=Species)) +
 ylab("Sepal Width") + xlab("Sepal Length") +
 ggtitle("Correlation of Sepal Length & Width by species") +
 coord_cartesian(xlim = c(5, 7), ylim = c(2.5, 4))

E a saída da trama será a mesma.

No RStudio folha de cálculo do ggplot2, pode encontrar esclarecimentos visuais para a utilização de todas as opções para este comando.

Artigo relacionado - R Plot