Como estabelecer limites de eixos em parcelas ggplot2 R
-
Definir limites do eixo x com
scale_x_continuous
emggplot2
-
Utilize
coord_cartesian
para limitar ambos os eixos emggplot2
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:
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:
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:
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.