Créer des visualisations de graphiques gaufrés
Les diagrammes circulaires carrés (ou diagrammes gaufrés) peuvent être utilisés pour communiquer des parties d'un tout pour des quantités catégorielles. Pour émuler la vue en pourcentage d'un diagramme circulaire, une grille 10x10 doit être utilisée, chaque carré représentant 1 % du total. Les utilisations modernes des graphiques gaufrés ne respectent pas nécessairement cette règle et peuvent être créées avec une grille de n'importe quelle forme rectangulaire. Les meilleures pratiques suggèrent de limiter le nombre de catégories, comme cela devrait être le cas lors de la création de diagrammes circulaires. Des outils sont fournis pour créer des graphiques en gaufres, les assembler et pour utiliser des glyphes pour créer des pictogrammes isotypes.
Il utilise ggplot2 et renvoie un objet ggplot2.
Les fonctions suivantes sont implémentées :
waffle
: Créer des graphiques en gaufres (à secteurs carrés)
draw_key_pictogram
: Générateur de légendes pour les pictogrammes
fa_grep
: Rechercher des noms de glyphes Font Awesome pour un motif
fa_list
: Liste tous les glyphes Font Awesome
fa5_brand
: Police Awesome 5 Marque
fa5_solid
: Police géniale 5 solide
geom_pictogram
: Pictogramme Géom
geom_waffle
: Gaufre (diagramme circulaire carré) Geom
install_fa_fonts
: Installer les polices Font Awesome 5
iron
: disposition verticale alignée à gauche pour les tracés en gaufres
scale_label_pictogram
: utilisé avec geom_pictogram() pour mapper les polices Font Awesome aux étiquettes
theme_enhance_waffle
: Dissolvant de thèmes de graphiques gaufrés qui peut être utilisé avec n'importe quel autre thème
install.packages( " waffle " ) # NOTE: CRAN version is 0.7.0
# or
remotes :: install_github( " hrbrmstr/waffle " )
REMARQUE : Pour utiliser les options d'installation « remotes », vous devez avoir installé le package {remotes}.
library( waffle )
library( magrittr )
library( hrbrthemes )
library( ggplot2 )
library( dplyr )
library( waffle )
# current verison
packageVersion( " waffle " )
# # [1] '1.0.2'
data.frame (
parts = factor (rep( month.abb [ 1 : 3 ], 3 ), levels = month.abb [ 1 : 3 ]),
vals = c( 10 , 20 , 30 , 6 , 14 , 40 , 30 , 20 , 10 ),
col = rep(c( " navy " , " black " , " maroon " ), 3 ),
fct = c(
rep( " Thing 1 " , 3 ),
rep( " Thing 2 " , 3 ),
rep( " Thing 3 " , 3 )
)
) - > xdf
xdf % > %
count( parts , wt = vals ) % > %
ggplot(
aes( fill = parts , values = n )
) +
geom_waffle(
n_rows = 20 ,
size = 0.33 ,
colour = " white " ,
flip = TRUE
) +
scale_fill_manual(
name = NULL ,
values = c( " #a40000 " , " #c68958 " , " #ae6056 " ),
labels = c( " Fruit " , " Sammich " , " Pizza " )
) +
coord_equal() +
theme_ipsum_rc( grid = " " ) +
theme_enhance_waffle()
xdf % > %
count( parts , wt = vals ) % > %
ggplot(
aes( label = parts , values = n )
) +
geom_pictogram(
n_rows = 10 ,
aes( colour = parts ),
flip = TRUE ,
make_proportional = TRUE
) +
scale_color_manual(
name = NULL ,
values = c( " #a40000 " , " #c68958 " , " #ae6056 " ),
labels = c( " Fruit " , " Sammich " , " Pizza " )
) +
scale_label_pictogram(
name = NULL ,
values = c( " apple-alt " , " bread-slice " , " pizza-slice " ),
labels = c( " Fruit " , " Sammich " , " Pizza " )
) +
coord_equal() +
theme_ipsum_rc( grid = " " ) +
theme_enhance_waffle() +
theme(
legend.key.height = unit( 2.25 , " line " ),
legend.text = element_text( size = 10 , hjust = 0 , vjust = 0.75 )
)
xdf % > %
count( parts , wt = vals ) % > %
ggplot(
aes( label = parts , values = n )
) +
geom_pictogram(
n_rows = 20 ,
size = 6 ,
aes( colour = parts ),
flip = TRUE ,
family = " FontAwesome5Brands-Regular "
) +
scale_color_manual(
name = NULL ,
values = c( " #073f9c " , " black " , " #f34323 " ),
labels = c( " BitBucket " , " GitHub " , " Other " )
) +
scale_label_pictogram(
name = NULL ,
values = c( " bitbucket " , " github " , " git-alt " ),
labels = c( " BitBucket " , " GitHub " , " Other " )
) +
coord_equal() +
theme_ipsum_rc( grid = " " ) +
theme_enhance_waffle() +
theme(
legend.text = element_text( hjust = 0 , vjust = 1 )
)
library( hrbrthemes )
library( waffle )
library( tidyverse )
tibble(
parts = factor (rep( month.abb [ 1 : 3 ], 3 ), levels = month.abb [ 1 : 3 ]),
values = c( 10 , 20 , 30 , 6 , 14 , 40 , 30 , 20 , 10 ),
fct = c(rep( " Thing 1 " , 3 ), rep( " Thing 2 " , 3 ), rep( " Thing 3 " , 3 ))
) - > xdf
ggplot(
data = xdf ,
aes( fill = parts , values = values )
) +
geom_waffle(
color = " white " ,
size = 1.125 ,
n_rows = 6
) +
facet_wrap( ~ fct , ncol = 1 ) +
scale_x_discrete(
expand = c( 0 , 0 , 0 , 0 )
) +
scale_y_discrete(
expand = c( 0 , 0 , 0 , 0 )
) +
ggthemes :: scale_fill_tableau( name = NULL ) +
coord_equal() +
labs(
title = " Faceted Waffle Geoms "
) +
theme_ipsum_rc( grid = " " ) +
theme_enhance_waffle()
library( dplyr )
library( waffle )
storms % > %
filter( year > = 2010 ) % > %
count( year , status ) - > storms_df
ggplot(
data = storms_df ,
aes( fill = status , values = n )
) +
geom_waffle(
color = " white " ,
size = .25 ,
n_rows = 10 ,
flip = TRUE
) +
facet_wrap(
~ year ,
nrow = 1 ,
strip.position = " bottom "
) +
scale_x_discrete() +
scale_y_continuous(
labels = function ( x ) x * 10 , # make this multiplier the same as n_rows
expand = c( 0 , 0 )
) +
ggthemes :: scale_fill_tableau( name = NULL ) +
coord_equal() +
labs(
x = " Year " , y = " Count " ,
title = " Faceted Waffle Bar Chart " ,
subtitle = " {dplyr} storms data "
) +
theme_minimal(
base_family = " Roboto Condensed "
) +
theme(
panel.grid = element_blank(),
axis.ticks.y = element_line()
) +
guides(
fill = guide_legend( reverse = TRUE )
)
parts <- c( 80 , 30 , 20 , 10 )
waffle( parts , rows = 8 )
parts <- data.frame (
names = LETTERS [ 1 : 4 ],
vals = c( 80 , 30 , 20 , 10 )
)
waffle( parts , rows = 8 )
c(
`Un-breachednUS Population` = ( 318 - 11 - 79 ),
`Premera` = 11 ,
`Anthem` = 79
) - > parts
waffle(
parts = parts ,
rows = 8 ,
size = 1 ,
colors = c( " #969696 " , " #1879bf " , " #009bda " ),
legend_pos = " bottom "
)
Violations de dossiers de santé en pourcentage de la population américaine
Un carré == 1 million de personnes
waffle(
parts = parts / 10 ,
rows = 3 ,
colors = c( " #969696 " , " #1879bf " , " #009bda " )
)
Violations de dossiers de santé en pourcentage de la population américaine
(Un carré == 10 m de personnes)
library( extrafont )
waffle(
parts = parts / 10 ,
rows = 3 ,
colors = c( " #969696 " , " #1879bf " , " #009bda " ),
use_glyph = " medkit " ,
size = 8
) +
expand_limits(
y = c( 0 , 4 )
)
Via : https://www.nytimes.com/2008/07/20/business/20debt.html
c(
`Mortgagen($84,911)` = 84911 ,
`Auto andntuition loansn($14,414)` = 14414 ,
`Home equity loansn($10,062)` = 10062 ,
`Credit Cardsn($8,565)` = 8565
) - > savings
waffle(
parts = savings / 392 ,
rows = 7 ,
size = 0.5 ,
legend_pos = " bottom " ,
colors = c( " #c7d4b6 " , " #a3aabd " , " #a0d0de " , " #97b5cf " )
)
Épargne moyenne des ménages chaque année
(1 carré == 392 $)
Similaire à https://eagereyes.org/techniques/square-pie-charts
professional <- c( `Male` = 44 , `Female (56%)` = 56 )
waffle(
parts = professional ,
rows = 10 ,
size = 0.5 ,
colors = c( " #af9139 " , " #544616 " )
)
Avec:
iron(
waffle(
parts = c( thing1 = 0 , thing2 = 100 ),
rows = 5
),
waffle(
parts = c( thing1 = 25 , thing2 = 75 ),
rows = 5
)
)
Sans (vous pouvez désactiver cela via le paramètre keep
maintenant) :
iron(
waffle(
parts = c( thing1 = 0 , thing2 = 100 ),
rows = 5 ,
keep = FALSE
),
waffle(
parts = c( thing1 = 25 , thing2 = 75 ),
rows = 5 ,
keep = FALSE
)
)
Maquillage professionnel
Exemple de fer (alignement à gauche et remplissage pour plusieurs tracés)
pain.adult.1997 <- c( `YOY (406)` = 406 , `Adult (24)` = 24 )
waffle(
parts = pain.adult.1997 / 2 ,
rows = 7 ,
size = 0.5 ,
colors = c( " #c7d4b6 " , " #a3aabd " ),
title = " Paine Run Brook Trout Abundance (1997) " ,
xlab = " 1 square = 2 fish " , pad = 3
) - > A
pine.adult.1997 <- c( `YOY (221)` = 221 , `Adult (143)` = 143 )
waffle(
parts = pine.adult.1997 / 2 ,
rows = 7 ,
size = 0.5 ,
colors = c( " #c7d4b6 " , " #a3aabd " ),
title = " Piney River Brook Trout Abundance (1997) " ,
xlab = " 1 square = 2 fish " , pad = 8
) - > B
stan.adult.1997 <- c( `YOY (270)` = 270 , `Adult (197)` = 197 )
waffle(
parts = stan.adult.1997 / 2 ,
rows = 7 ,
size = 0.5 ,
colors = c( " #c7d4b6 " , " #a3aabd " ),
title = " Staunton River Trout Abundance (1997) " ,
xlab = " 1 square = 2 fish "
) - > C
iron( A , B , C )
cloc :: cloc_pkg_md()
Lang | # fichiers | (%) | LdC | (%) | Lignes vides | (%) | # Lignes | (%) |
---|---|---|---|---|---|---|---|---|
R. | 14 | 0,44 | 624 | 0,35 | 218 | 0,36 | 439 | 0,38 |
Rmd | 2 | 0,06 | 255 | 0,15 | 88 | 0,14 | 139 | 0,12 |
SOMME | 16 | 0,50 | 879 | 0,50 | 306 | 0,50 | 578 | 0,50 |
{cloc} ? métriques pour la gaufre
Veuillez noter que ce projet est publié avec un code de conduite des contributeurs. En participant à ce projet, vous acceptez d'en respecter les termes.