Create Chicklet (Rounded Segmented Column) Charts https://cinc.rud.is/web/packages/ggchicklet/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boB Rudis 70de18b6cd
feb 25
пре 4 година
R october пре 5 година
data feb 25 пре 4 година
data-raw feb 25 пре 4 година
inst/tinytest fixed test пре 5 година
man feb 25 пре 4 година
tests switch to tinytest пре 5 година
vignettes updated debates data; regen'd vignette пре 5 година
.Rbuildignore pretty much feature complete пре 5 година
.codecov.yml R package repo initialization complete пре 5 година
.gitignore pretty much feature complete пре 5 година
.travis.yml R package repo initialization complete пре 5 година
CONDUCT.md R package repo initialization complete пре 5 година
DESCRIPTION feb 25 пре 4 година
LICENSE initial commit пре 5 година
NAMESPACE pretty much feature complete пре 5 година
NEWS.md feb 25 пре 4 година
README.Rmd updated debates data; regen'd vignette пре 5 година
README.md feb 25 пре 4 година
ggchicklet.Rproj R package repo initialization complete пре 5 година

README.md

Project Status: Active – The project has reached a stable, usablestate and is being activelydeveloped. Signedby Signed commit% Linux buildStatus CoverageStatus Minimal RVersion License

ggchicklet

Create Chicklet (Rounded Segmented Column) Charts

Description

Sometimes it is useful to stylize column charts a bit more than just bland rectangles. Methods are provided to create rounded rectangle segmented column charts (i.e. “chicklets”).

What’s Inside The Tin

  • debates2019: 2019-2020 U.S. Democratic Debate Candidate/Topic Times
  • geom_chicklet: Chicklet (rounded segmented column) charts

The following functions are implemented:

Installation

install.packages("ggchicklet", repos = "https://cinc.rud.is")
# or
remotes::install_git("https://git.rud.is/hrbrmstr/ggchicklet.git")
# or
remotes::install_git("https://git.sr.ht/~hrbrmstr/ggchicklet")
# or
remotes::install_gitlab("hrbrmstr/ggchicklet")
# or
remotes::install_bitbucket("hrbrmstr/ggchicklet")
# or
remotes::install_github("hrbrmstr/ggchicklet")

NOTE: To use the ‘remotes’ install options you will need to have the {remotes} package installed.

Usage

library(ggchicklet)

# current version
packageVersion("ggchicklet")
## [1] '0.5.2'

From the NYTimes

library(hrbrthemes)
library(tidyverse)

data("debates2019")

debates2019 %>%
  filter(debate_group == 1) %>% 
  mutate(speaker = fct_reorder(speaker, elapsed, sum, .desc=FALSE)) %>%
  mutate(topic = fct_other(
    topic,
    c("Immigration", "Economy", "Climate Change", "Gun Control", "Healthcare", "Foreign Policy"))
  ) %>%
  ggplot(aes(speaker, elapsed, group = timestamp, fill = topic)) +
  geom_chicklet(width = 0.75) +
  scale_y_continuous(
    expand = c(0, 0.0625),
    position = "right",
    breaks = seq(0, 14, 2),
    labels = c(0, sprintf("%d min.", seq(2, 14, 2)))
  ) +
  scale_fill_manual(
    name = NULL,
    values = c(
      "Immigration" = "#ae4544",
      "Economy" = "#d8cb98",
      "Climate Change" = "#a4ad6f",
      "Gun Control" = "#cc7c3a",
      "Healthcare" = "#436f82",
      "Foreign Policy" = "#7c5981",
      "Other" = "#cccccc"
    ),
    breaks = setdiff(unique(debates2019$topic), "Other")
  ) +
  guides(
    fill = guide_legend(nrow = 1)
  ) +
  coord_flip() +
  labs(
    x = NULL, y = NULL, fill = NULL,
    title = "How Long Each Candidate Spoke",
    subtitle = "Nights 1 & 2 of the June 2019 Democratic Debates",
    caption = "Each bar segment represents the length of a candidate’s response to a question.\n\nOriginals <https://www.nytimes.com/interactive/2019/admin/100000006581096.embedded.html?>\n<https://www.nytimes.com/interactive/2019/admin/100000006584572.embedded.html?>\nby @nytimes Weiyi Cai, Jason Kao, Jasmine C. Lee, Alicia Parlapiano and Jugal K. Patel\n\n#rstats reproduction by @hrbrmstr"
  ) +
  theme_ipsum_rc(grid="X") +
  theme(axis.text.x = element_text(color = "gray60", size = 10)) +
  theme(legend.position = "top")

ggchicklet Metrics

Lang # Files (%) LoC (%) Blank lines (%) # Lines (%)
HTML 12 0.55 10200 0.92 3169 0.97 501 0.71
R 8 0.36 788 0.07 45 0.01 122 0.17
Rmd 2 0.09 117 0.01 45 0.01 85 0.12

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.