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/ –
