Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/EmilHvitfeldt/ggpage

Creates Page Layout Visualizations in R 📄📄📄
https://github.com/EmilHvitfeldt/ggpage

data-visualization datavisualization dataviz ggplot2 r rstats

Last synced: 3 months ago
JSON representation

Creates Page Layout Visualizations in R 📄📄📄

Awesome Lists containing this project

README

        

---
output: github_document
---
```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-"
)
```

# ggpage

[![Travis build status](https://travis-ci.org/EmilHvitfeldt/ggpage.svg?branch=master)](https://travis-ci.org/EmilHvitfeldt/ggpage)
[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/github/EmilHvitfeldt/ggpage?branch=master&svg=true)](https://ci.appveyor.com/project/EmilHvitfeldt/ggpage)
[![Coverage status](https://codecov.io/gh/EmilHvitfeldt/ggpage/branch/master/graph/badge.svg)](https://codecov.io/github/EmilHvitfeldt/ggpage?branch=master)
[![CRAN status](https://www.r-pkg.org/badges/version/ggpage)](https://cran.r-project.org/package=ggpage)

**ggpage** is a package to create pagestyled visualizations of text based data. It uses ggplot2 and final returns are ggplot2 objects.

## Version 0.2.0

In this new version I have worked to include a lot of use cases that wasn't available in the first version. These new elements are previewed in the vignette.

## Installation

You can install the released version of **ggpage** from [CRAN](https://cran.r-project.org/) with:

```{r eval = FALSE}
install.packages("ggpage")
```

or you can install the developmental version of **ggpage** from github with:

```{r gh-installation, eval = FALSE}
# install.packages("devtools")
devtools::install_github("EmilHvitfeldt/ggpage")
```

## Example

The package includes The Tinder-box by H.C. Andersen for examples.

```{r message=FALSE}
library(tidyverse)
library(ggpage)

head(tinderbox, 10)
```

The basic workflow with **ggpage** is using either

- `ggpage_quick` for a quick one function call plot or,
- combining `ggpage_build` and `ggpage_plot` to do analysis (NLP for example) before the final plot is produced.

For a simple demonstration we apply `ggpage_quick` to our `tinderbox` object. It is important that the data.frame that is used have the text in a column named "text".

```{r}
ggpage_quick(tinderbox)

# Also pipeable
# tinderbox %>% ggpage_quick()
```

The same result would be achieved by using

```{r eval=FALSE}
tinderbox %>%
ggpage_build() %>%
ggpage_plot()
```

But this approach allows us to introduce more code between `ggpage_build` and `ggpage_plot` giving us multiple more ways to enhance the plots

```{r}
tinderbox %>%
ggpage_build() %>%
mutate(long_word = stringr::str_length(word) > 8) %>%
ggpage_plot(aes(fill = long_word)) +
labs(title = "Longer words throughout The Tinder-box") +
scale_fill_manual(values = c("grey70", "blue"),
labels = c("8 or less", "9 or more"),
name = "Word length")
```