En guise de suivi direct de ma question précédente (veuillez répondre par @PoGibas) , je peaufine l'apparence de mon intrigue. J'aimerais utiliser des formes de cercle sans bordure, mais j'ai des problèmes pour l'intégrer dans mon code existant. C'est le code jusqu'à présent:
set.seed(42)
lat1 <- rnorm(10, 54, 12)
long1 <- rnorm(10, 44, 12)
val1 <- rnorm(10, 10, 3)
lat2 <- rnorm(10, 54, 12)
long2 <- rnorm(10, 44, 12)
val2 <- rnorm(10, 10, 3)
df1 <- as.data.frame(cbind(long1, lat1, val1))
df2 <- as.data.frame(cbind(long2, lat2, val2))
ggplot() +
geom_point(data = df1,
aes(lat1, long1, size = val1, fill = val1),
shape = 21, alpha = 0.6) +
geom_point(data = df2,
aes(lat2, long2, color = "val2"),
shape = 17, size = 3) +
geom_point(data = df2,
aes(lat2, long2, color = "val2"),
shape = 17, size = 11.5, alpha = 0) +
scale_size_continuous(range = c(2, 12), breaks = pretty_breaks(4)) +
scale_fill_distiller(direction = -1, palette = "RdYlBu", breaks = pretty_breaks(4)) +
scale_color_manual(values = "black", name = "Value\n") +
labs(fill = NULL,
size = NULL) +
guides(fill = guide_legend(),
size = guide_legend(),
color = guide_legend(order = 1)) +
theme_minimal() +
theme(legend.spacing.y = unit(-0.4, "cm"))
J'ai essayé de définir stroke=FALSE
et d'utiliser alternativement shape=20
tout en remplaçant fill=val1
par color=val1
pour activer une coloration différente. Le premier changement n'a aucun effet et le dernier me donne Error: Discrete value supplied to continuous scale
. Qu'est-ce que je fais mal?
1 réponse
Vous pouvez ajouter colour = "transparent"
:
ggplot() +
geom_point(data = df1,
aes(lat1, long1, size = val1, fill = val1),
shape = 21, alpha = 0.6, colour = "transparent") +
geom_point(data = df2,
aes(lat2, long2, color = "val2"),
shape = 17, size = 3) +
geom_point(data = df2,
aes(lat2, long2, color = "val2"),
shape = 17, size = 11.5, alpha = 0) +
scale_size_continuous(range = c(2, 12), breaks = pretty_breaks(4)) +
scale_fill_distiller(direction = -1, palette = "RdYlBu", breaks = pretty_breaks(4)) +
scale_color_manual(values = "black", name = "Value\n") +
labs(fill = NULL,
size = NULL) +
guides(fill = guide_legend(),
size = guide_legend(),
color = guide_legend(order = 1)) +
theme_minimal() +
theme(legend.spacing.y = unit(-0.4, "cm"))
Ou vous attribuez la couleur des triangles en dehors de aes et utilisez scale_colour_distiller
avec shape = 19
(bien que cela supprime la clé val2 dans la légende, vous ne savez pas comment résoudre ce problème):
ggplot() +
geom_point(data = df1,
aes(lat1, long1, size = val1, colour = val1),
shape = 19, alpha = 0.6) +
geom_point(data = df2,
aes(lat2, long2),
shape = 17, size = 3, colour = "black") +
geom_point(data = df2,
aes(lat2, long2),
shape = 17, size = 11.5, alpha = 0, colour = "black") +
scale_size_continuous(range = c(2, 12), breaks = pretty_breaks(4)) +
scale_colour_distiller(direction = -1, palette = "RdYlBu", breaks = pretty_breaks(4)) +
labs(colour = NULL,
size = NULL) +
guides(colour = guide_legend(),
size = guide_legend(),
color = guide_legend(order = 1)) +
theme_minimal() +
theme(legend.spacing.y = unit(-0.4, "cm"))
Questions connexes
Questions liées
De nouvelles questions
r
R est un langage de programmation et un environnement logiciel libres et open source pour le calcul statistique, la bioinformatique, la visualisation et le calcul général. Veuillez fournir des exemples minimaux et reproductibles ainsi que le résultat souhaité. Utilisez dput () pour les données et spécifiez tous les packages non basiques avec des appels à library (). N'incorporez pas d'images pour les données ou le code, utilisez plutôt des blocs de code en retrait. Pour les questions relatives aux statistiques, utilisez https://stats.stackexchange.com.