(R) Cum să utilizați ggpattern pentru a adăuga modele la parcelele ggplot2

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Blogul lui Zhenguo Zhang https://fortune9.netlify.app/2026/05/22/r-how-to-use-ggpattern/ –

Adăugarea de modele la parcele este o modalitate excelentă de a îmbunătăți accesibilitatea (făcând parcelele prietenoase cu daltonii) și de a adăuga o dimensiune suplimentară de informații. The ggpattern pachetul oferă un set bogat de instrumente pentru a realiza acest lucru în ggplot2.

Exemplu de bază cu mtcars

Să începem cu o diagramă de bare folosind mtcars set de date. Vom mapa cyl la axa x, mpg la axa y, folosiți gear pentru culoarea de umplere și am pentru model.

# Prepare data
df <- mtcars %>%
  mutate(
    cyl = factor(cyl),
    gear = factor(gear),
    am = factor(am, labels = c("Automatic", "Manual"))
  )

# Create barplot
ggplot(df, aes(x = cyl, y = mpg, fill = gear)) +
  geom_bar_pattern(
    aes(pattern = am),
    stat = "identity",
    position = "dodge",
    color = "black",
    pattern_fill = "black",
    pattern_spacing = 0.02,
    pattern_key_scale_factor = 1.5
  ) +
  scale_pattern_manual(values = c("stripe", "crosshatch")) +
  labs(
    title = "MPG by Cylinders, Gear, and Transmission",
    subtitle = "Patterns representing transmission type",
    x = "Cylinders",
    y = "Miles Per Gallon (MPG)",
    fill = "Gears",
    pattern = "Transmission"
  ) +
  theme_minimal()

Explorarea parametrilor cheie

The ggpattern pachetul permite un control fin asupra modului în care sunt redate modelele. Iată câțiva dintre cei mai importanți parametri:

1. factor_key_scale_factor

Acest parametru scalează densitatea modelului în mod specific în legendă. Fără el, modelele din legendă pot fi adesea greu de văzut. Reduceți valoarea va facilita încadrarea în cheile de legendă.

p_base <- ggplot(df, aes(x = cyl, y = mpg, fill = gear)) +
  geom_bar_pattern(
    aes(pattern = am),
    stat = "identity",
    position = "dodge",
    color = "black",
    pattern_spacing = 0.02
  ) +
  theme_minimal() +
  labs(title = "Default vs Scaled Legend")

# Default legend
p1 <- p_base + labs(subtitle = "Default (key_scale_factor = 1)")

# Scaled legend
p2 <- p_base + 
  geom_bar_pattern(
    aes(pattern = am),
    stat = "identity",
    position = "dodge",
    color = "black",
    pattern_spacing = 0.02,
    pattern_key_scale_factor = 0.5
  ) +
  labs(subtitle = "Scaled (key_scale_factor = 0.5)")

p1

p2

2. model_spacing și model_density

pattern_spacing controlează distanța dintre elementele modelului (mai jos = mai dens), în timp ce pattern_density controlează acoperirea (mai mare = mai densă).

# Spacing effect
ggplot(df, aes(x = cyl, y = mpg, fill = gear)) +
  geom_bar_pattern(
    aes(pattern = am),
    stat = "identity",
    position = "dodge",
    pattern_spacing = 0.2, # Wider spacing
    pattern_key_scale_factor = 1.5
  ) +
  labs(title = "Effect of pattern_spacing = 0.5 (Sparser)") +
  theme_minimal()

# Density effect
ggplot(df, aes(x = cyl, y = mpg, fill = gear)) +
  geom_bar_pattern(
    aes(pattern = am),
    stat = "identity",
    position = "dodge",
    pattern_density = 0.8, # Higher density
    pattern_key_scale_factor = 1.5
  ) +
  labs(title = "Effect of pattern_density = 0.8 (Denser)") +
  theme_minimal()

3. model_umplere

pattern_fill stabilește culoarea elementelor de model în sine.

ggplot(df, aes(x = cyl, y = mpg, fill = gear)) +
  geom_bar_pattern(
    aes(pattern = am),
    stat = "identity",
    position = "dodge",
    pattern_fill = "white", # White pattern lines
    pattern_density = 0.5, # make it bigger so that the color is easier to see
    pattern_spacing = 0.02,
    pattern_key_scale_factor = 1.5
  ) +
  labs(title = "Effect of pattern_fill = 'white'") +
  theme_minimal()

4. model_forma

Pentru modele geometrice precum regular_polygon, pattern_shape controlează numărul de laturi.

ggplot(df, aes(x = cyl, y = mpg, fill = gear)) +
  geom_bar_pattern(
    aes(pattern_shape=gear),
    pattern = "regular_polygon",
    stat = "identity",
    position = "dodge",
    pattern_size = 0.5, # stroke line width
    pattern_density = 0.5, # increase the shape size
    pattern_spacing = 0.03,
    pattern_key_scale_factor = 1.5
  ) +
  scale_pattern_shape_manual(values = c("3"="circle", "4"="convex6", "5"="square")) + # manually set shapes
  labs(title = "Effect of mapping pattern_shape to gear") +
  theme_minimal()

Depanare

Dacă întâmpinați probleme la instalare sau la încărcare ggpattern pe Linux, poate fi necesar să instalați următoarele dependențe de sistem:

sudo apt-get install libudunits2-dev
sudo apt install libproj22
sudo apt-get install libgdal-dev

– https://fortune9.netlify.app/2026/05/22/r-how-to-use-ggpattern/ –

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.