Dentro de um ggplot
, quase todas as áreas representadas podem ser modificadas e ajustadas. Algumas dessas alterações serão discutidas a seguir.
Para isso, primeiro criamos novamente um objeto ggplot com nosso gráfico de dispersão da introdução ao ggplot
:
scatter <- ggplot(
pss,
aes(
stfeco,
stfdem
)
) +
geom_jitter(
alpha = .2,
col = "blue"
) +
scale_x_continuous(
breaks = seq(
0,
10,
1
)
) +
scale_y_continuous(
breaks = seq(
0,
10,
1
)
)
scatter
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Primeiro, adicionamos novamente título, rótulos dos eixos e fontes.
scatterLeg <- scatter +
labs(
x = "Satisfaction with Economy",
y = "Satisfaction with Democracy",
title = "Correlation Plot",
caption = "Data: Panem Social Survey.\n Data jittered."
)
scatterLeg
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Dentro da função theme()
, podemos abordar e alterar áreas específicas do gráfico. Isso inclui propriedades como:
plot.title
axis.title.x
/ axis.title.y
axis.text.x
/ axis.text.y
panel.grid
/ panel.grid.minor
/ panel.grid.major
plot.background
/ panel.background
Uma visão completa de todas as configurações que podem ser usadas em theme()
pode ser encontrada na
Documentação do Usuário.
Wir vamos fazer alterações gradualmente. Primeiro, vamos alterar o tamanho da fonte, a posição e a aparência do título. Isso é feito através de plot.title
em theme()
. Para isso, usamos a função element_text()
:
scatterLeg +
theme(
plot.title = element_text(
size = 25,
face = "italic",
hjust = 0.5
)
)
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Para isso, usamos os três argumentos size
(tamanho da fonte), face
(aparência) e hjust
(posição).
Em seguida, vamos editar os títulos dos eixos.
scatterAxes <- scatterLeg +
theme(
plot.title = element_text(
size = 25,
face = "italic",
hjust = 0.5
),
axis.title.x = element_text(
size = 16,
color = "seagreen",
hjust = 0
),
axis.title.y = element_text(
size = 8,
color = rgb(
0,
105,
179,
maxColorValue = 255
),
hjust = 1,
face = "bold"
)
)
scatterAxes
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Em vez de especificar uma cor, você pode determinar o tom de cor usando a função rgb()
. Alternativamente, você também pode usar o código HTML da cor dentro do argumento color
.
scatterLeg +
theme(
plot.title = element_text(
size = 25,
face = "italic",
hjust = 0.5
),
axis.title.x = element_text(
size = 16,
color = "seagreen",
hjust = 0
),
axis.title.y = element_text(
size = 8,
color = "#0069B3",
hjust = 1,
face = "bold"
)
)
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Agora, vamos continuar experimentando e editar as marcas dos eixos. Para isso, usamos axis.ticks.x
ou axis.ticks.y
.
scatterTicks <- scatterAxes +
theme(
axis.text.x = element_text(
size = 12,
angle = 45,
color = "darkgrey"
),
axis.text.y = element_text(
size = 11,
hjust = 0,
vjust = 1
)
)
scatterTicks
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Com o argumento angle
, podemos girar as marcações dos eixos. Com hjust
e vjust
, podemos alterar a posição inicial do texto.
Em seguida, queremos alterar o grid do gráfico, ou seja, as linhas. Para isso, primeiro usamos o argumento panel.grid
e dentro do argumento a função element_line()
scatterGrid <- scatterTicks +
theme(
panel.grid = element_line(
color = "green",
size = 1,
linetype = "solid" # blank, solid, dashed, dotted, dotdash, longdash, twodash
)
)
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
scatterGrid
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Com os argumentos panel.grid.major
e panel.grid.minor
, as linhas principais e auxiliares podem ser editadas separadamente. Se quisermos apenas as linhas principais, fazemos o seguinte:
scatterGrid <- scatterTicks +
theme(
panel.grid.major = element_line(
color = "green",
size = 1,
linetype = "solid" # blank, solid, dashed, dotted, dotdash, longdash, twodash
),
panel.grid.minor = element_blank()
)
scatterGrid
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Também é possível editar as linhas auxiliares separadamente por eixo. Para isso, basta adicionar .x
ou .y
respectivamente.
Por fim, é possível alterar o fundo do gráfico ou do painel. Isso é feito através dos argumentos plot.background
ou panel.background
. Para isso, usamos a função element_rect()
dentro do argumento
scatterGrid +
theme(
plot.background = element_rect(
color ="darkgray",
size = 2,
fill = "lightpink"
),
panel.background = element_rect(
fill = "moccasin"
)
)
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Existem também uma série de temas predefinidos que podem ser personalizados individualmente.
Uma visão geral dos temas disponíveis está aqui.