Blogul lui Zhenguo Zhang/2025/05/10/R-utilizare-new-scală-xxx-funcție-la-add-the-same-scală-în-different-ggplot-layers/-
Într -o figură GGPLOT, în mod normal, puteți utiliza o singură scară pentru fiecare mapare estetică. De exemplu, dacă utilizați scale_color_manual()
Pentru a seta scala de culori pentru un strat, nu puteți utiliza altul scale_color_manual()
pentru un alt strat sau setați scala de culoare mai mult, apoi o dată în funcție aes()
. Cu toate acestea, puteți utiliza new_scale_color()
Funcție din ggnewscale
Pachet pentru a adăuga o nouă scară pentru aceeași mapare estetică în straturi diferite.
În această postare, voi prezenta cum să folosesc new_scale_color()
Funcție pentru a adăuga două scări de culori diferite într -o figură GGPLOT. Prima scară va fi pentru o variabilă discretă (de exemplu, numărul de cilindri), iar a doua scară va fi pentru o variabilă continuă (de exemplu, nivel de densitate).
Încărcați pachetele mai întâi.
library(ggplot2) library(ggnewscale)
Utilizați setul de date MTCARS pentru exemplu
data(mtcars)
Creați un complot cu două scale de culoare: 1. Puncte colorate de „Cyl” (discret) 2. Contururi de densitate colorate după nivel de densitate (continuu)
În primul rând, să facem un complot de împrăștiere a mpg
vs wt
cu puncte colorate de numărul de cilindri (cyl
) Vom folosi geom_point()
Funcție pentru acest strat.
plt <- ggplot(mtcars, aes(x = wt, y = mpg)) + # First layer: Scatter plot colored by cylinders (discrete variable) geom_point(aes(color = factor(cyl)), size = 3) + scale_color_discrete(name = "Cylinders") plt
Setați o nouă scară pentru următorul strat
# Reset the color scale for the next layer plt <- plt + new_scale_color()
Adăugați un al doilea strat: contururi de densitate colorate după nivel de densitate (variabilă continuă)
plt <- plt + geom_density_2d(aes(color = after_stat(level))) + scale_color_viridis_c(name = "Density Level", option = "magma") + # Add labels and theme labs(title = "Dual Color Scales with new_scale_color()", x = "Weight (1000 lbs)", y = "Miles per Gallon") + theme_minimal() plt
Aici am demonstrat cum să folosesc new_scale_color()
Funcție din ggnewscale
pachet, se poate folosi și new_scale_fill()
Pentru estetică de umplere. Pentru alte estetice, cum ar fi size
, shape
etc., puteți suna
new_scale("size")
, new_scale("shape")
etc. pentru a adăuga noi scale.
Pentru a afla mai multe, verificați pagina web https://eliocamp.github.io/ggnewscale/
Programare fericită 😃
-/2025/05/10/r-utilizare-nouă-scală-xxx-funcție-add-the-same-scală-tip-in-different-ggplot-layers/-