Nas figuras abaixo, eu gostaria que a legenda mostrasse a cor de preenchimento para a variável 'color'. Eu também gostaria que todos os pontos no gráfico tivessem um contorno preto. Parece que eu posso fazer um ou outro, mas não ambos (ou seja, a legenda tem cor e os pontos têm contorno preto). Eu selecionei formas que têm um contorno preto, como pode ser visto na legenda 'cut'.
Perguntas SO semelhantes:
- Contorno preto ao redor do geom_point e legenda de correspondência de cores - ggplot
- Os pontos ggplot têm cor, mas os pontos da legenda (guia) são todos pretos
Mantém o contorno preto ao redor dos pontos, mas a legenda fica toda preta
library(tidyverse)
diamonds %>%
slice(1:20) %>%
ggplot(aes(x = x,
y = y,
shape = cut,
fill = color)) +
geom_point(size = 3,
alpha = 0.8) +
scale_shape_manual(values = c('Ideal' = 21,
'Premium' = 22,
'Good' = 23,
'Very Good' = 24,
'Fair' = 25)) +
scale_fill_manual(values = c('E' = '#ca0020',
'F' = '#f4a582',
'H' = '#ffffbf',
'I' = '#92c5de',
'J' = '#0571b0')) +
theme_bw()
Remove o contorno preto ao redor dos pontos, mas a legenda é toda colorida
diamonds %>%
slice(1:20) %>%
ggplot(aes(x = x,
y = y,
shape = cut,
fill = color,
color = color)) +
geom_point(size = 3,
alpha = 0.8) +
scale_shape_manual(values = c('Ideal' = 21,
'Premium' = 22,
'Good' = 23,
'Very Good' = 24,
'Fair' = 25)) +
scale_fill_manual(values = c('E' = '#ca0020',
'F' = '#f4a582',
'H' = '#ffffbf',
'I' = '#92c5de',
'J' = '#0571b0')) +
scale_color_manual(values = c('E' = '#ca0020',
'F' = '#f4a582',
'H' = '#ffffbf',
'I' = '#92c5de',
'J' = '#0571b0')) +
theme_bw()
EDIT: Eu entendo que posso adicionar um segundo conjunto de pontos um pouco maior para obter uma solução alternativa, mas isso é desleixado
diamonds %>%
slice(1:20) %>%
ggplot(aes(x = x,
y = y,
shape = cut,
fill = color,
color = color)) +
geom_point(size = 3.5,
alpha = 0.5,
color = 'black') +
geom_point(size = 3,
alpha = 0.8) +
scale_shape_manual(values = c('Ideal' = 21,
'Premium' = 22,
'Good' = 23,
'Very Good' = 24,
'Fair' = 25)) +
scale_fill_manual(values = c('E' = '#ca0020',
'F' = '#f4a582',
'H' = '#ffffbf',
'I' = '#92c5de',
'J' = '#0571b0')) +
scale_color_manual(values = c('E' = '#ca0020',
'F' = '#f4a582',
'H' = '#ffffbf',
'I' = '#92c5de',
'J' = '#0571b0')) +
theme_bw()
Criado em 2024-11-13 com reprex v2.1.1
Você só precisa substituir a estética da forma dos pontos na legenda de preenchimento:
você pode substituir a estética no preenchimento para obter o resultado que deseja: