Rode esse código no início do script para habilitar as funções
library(ggplot2)
# escolha o tema
theme_set(theme_minimal())
# cores que serão utilizadas
eapi_colors <- c(
`red` = "#eb7071",
`light red` = "#f6b7b8",
`orange` = "#faaf61",
`light orange` = "#fcd5ae",
`lighter orange` = "#fdead6",
`dark green` = "#316b3c",
`green` = "#85ca92",
`light green` = "#c0e4c7",
`lighter green` = "#dff1e3",
`blue` = "#0e84cc",
`light blue` = "#74c5f6",
`lighter blue` = "#b9e2fa",
`purple` = "#9f9cce",
`light purple` = "#cecce6",
`lighter purple` = "#e5e5f2",
`grey (EAPI)` = "#878b8c",
`dark brown (EAPI)` = "#962915",
`light brown (EAPI)` = "#af7061",
`yellow (EAPI)` = "#b88d4f",
`dark green (EAPI)` = "#1a5e5d",
`light green (EAPI)` = "#809376"
)
eapi_cols <- function(...) {
cols <- c(...)
if (is.null(cols))
return (eapi_colors)
eapi_colors[cols]
}
eapi_palettes <- list(
`ord` = eapi_cols("dark green", "blue", "red"),
`dico` = eapi_cols("green", "red"),
`eapi` = eapi_cols(
"grey (EAPI)", "dark brown (EAPI)", "light brown (EAPI)",
"yellow (EAPI)", "dark green (EAPI)", "light green (EAPI)"),
`mixed` = eapi_cols("red", "dark green", "blue", "purple"),
`ali` = eapi_cols("red", "light red"),
`div` = eapi_cols('orange', 'light orange', 'lighter orange'),
`seg` = eapi_cols('dark green'),
`cipp` = eapi_cols('green', "light green", "lighter green"),
`infr` = eapi_cols("blue", "light blue", 'lighter blue'),
`eg`= eapi_cols("purple", "light purple", "lighter purple")
)
eapi_pal <- function(palette = "eapi", reverse = FALSE, ...) {
pal <- eapi_palettes[[palette]]
if (reverse) pal <- rev(pal)
colorRampPalette(pal, ...)
}
scale_color_eapi <- function(palette = "eapi", discrete = TRUE, reverse = FALSE, ...) {
pal <- eapi_pal(palette = palette, reverse = reverse)
if (discrete) {
discrete_scale("colour", paste0("eapi_", palette), palette = pal, ...)
} else {
scale_color_gradientn(colours = pal(256), ...)
}
}
scale_fill_eapi <- function(palette = "main", discrete = TRUE, reverse = FALSE, ...) {
pal <- eapi_pal(palette = palette, reverse = reverse)
if (discrete) {
discrete_scale("fill", paste0("eapi_", palette), palette = pal, ...)
} else {
scale_fill_gradientn(colours = pal(256), ...)
}
}
Esta paleta usa as cores da EAPI. Seguem os exemplos
eapi_palettes
## $ord
## dark green blue red
## "#316b3c" "#0e84cc" "#eb7071"
##
## $dico
## green red
## "#85ca92" "#eb7071"
##
## $eapi
## grey (EAPI) dark brown (EAPI) light brown (EAPI) yellow (EAPI)
## "#878b8c" "#962915" "#af7061" "#b88d4f"
## dark green (EAPI) light green (EAPI)
## "#1a5e5d" "#809376"
##
## $mixed
## red dark green blue purple
## "#eb7071" "#316b3c" "#0e84cc" "#9f9cce"
##
## $ali
## red light red
## "#eb7071" "#f6b7b8"
##
## $div
## orange light orange lighter orange
## "#faaf61" "#fcd5ae" "#fdead6"
##
## $seg
## dark green
## "#316b3c"
##
## $cipp
## green light green lighter green
## "#85ca92" "#c0e4c7" "#dff1e3"
##
## $infr
## blue light blue lighter blue
## "#0e84cc" "#74c5f6" "#b9e2fa"
##
## $eg
## purple light purple lighter purple
## "#9f9cce" "#cecce6" "#e5e5f2"
Para uso, basta escolher a paleta de cores que mais te agrada com a função scale_fill_eapi
ou scale_color_eapi
. Seguem alguns exemplos:
# Cria o banco
dicotomico <- data.frame(
desc = c('Sim', 'Não', 'Sim', 'Não'),
value = c(70, 30, 40, 60),
questao = c(rep('Questão 1', 2), rep('Questão 2', 2))
)
# Gera o gráfico
ggplot(dicotomico, aes(x = questao, y = value, fill = desc)) +
geom_bar(position = 'stack', stat = 'identity')+
labs(
x = 'Questões',
y = 'Quantidade',
fill = 'Resposta',
title = 'Dicotômico'
) +
scale_fill_eapi('dico', reverse = T)+ # use essa função
coord_flip()
# Cria o banco
ordinal <- data.frame(
desc = rep(c(
'Concordo Plenamente',
'Concordo',
'Neutro',
'Discordo',
'Discordo Plenamente'
),2),
value = c(15, 25, 20, 30, 10, 10, 30, 20, 25, 15),
questao = c(rep('Questão 1', 5), rep('Questão 2', 5))
)
# Classifica por fator
ordinal$desc <- factor(ordinal$desc, levels = c(
'Concordo Plenamente',
'Concordo',
'Neutro',
'Discordo',
'Discordo Plenamente'
))
# Gera o gráfico
ggplot(ordinal, aes(x = questao, y = value, fill = desc)) +
geom_bar(position = 'stack', stat = 'identity')+
labs(
x = 'Questões',
y = 'Quantidade',
fill = 'Resposta',
title = 'Ordinal'
) +
scale_fill_eapi('ord')+
coord_flip()
# Gera o gráfico
ggplot(ordinal, aes(x = questao, y = value, fill = desc)) +
geom_bar(position = 'stack', stat = 'identity')+
labs(
x = 'Questões',
y = 'Quantidade',
fill = 'Resposta',
title = 'Ordinal'
) +
scale_fill_eapi('dico')+
coord_flip()
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
labs(title = 'Alimentacao') +
scale_color_eapi('ali')
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
labs(title = 'Diversidade') +
scale_color_eapi('div')
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
labs(title = 'Segurança') +
scale_color_eapi('seg')
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
labs(title = 'Currículos, interações e práticas pedagógicas') +
scale_color_eapi('cipp')
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
labs(title = 'Infraestrutura') +
scale_color_eapi('infr')
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
labs(title = 'Equipe e gestão') +
scale_color_eapi('eg')
# Cria o banco
dimensional <- data.frame(
dimensao = paste0('Dimensão ', 1:6),
value = c(15, 30, 40, 20, 15, 10)
)
# Gera o gráfico
ggplot(dimensional, aes(x = dimensao, y = value, fill = dimensao)) +
geom_bar(stat = 'identity')+
labs(
x = 'Dimensões',
y = 'Quantidade',
fill = 'Quantidade',
title = 'Dimensões'
) +
scale_fill_eapi('eapi')
# gera o gráfico
ggplot(iris, aes(Sepal.Width, Sepal.Length, color = Species)) +
geom_point(size = 4) +
scale_color_eapi('mixed')