-
Notifications
You must be signed in to change notification settings - Fork 3
/
README.Rmd
100 lines (78 loc) · 2.39 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "README-"
)
```
[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/hexamapmaker)](http://cran.r-project.org/package=hexamapmaker)
# hexamapmaker
The goal of `hexamapmaker` is to turn points into hexagons. `hexamapmaker` takes a set of points in a x and y coordinate and turns them into hexagons. The idea is, that you can quickly design the layout of a hexagon map by just adding points in a coordinate system. Then the hexamap function turns them into hexagon-shaped polygons that can be plotted with `ggplot2`.
## Installation
You can install hexamapmaker from github with:
```{r gh-installation, eval = FALSE}
# install.packages("devtools")
devtools::install_github("mikkelkrogsholm/hexamapmaker")
```
## Example
This is a basic example which shows you how to make a hexamap:
```{r load_libraries}
# Load libraries
library(hexamapmaker)
library(ggplot2)
library(tibble)
library(ggthemes)
```
```{r}
# Points on a "normal" grid.
my_points <- tibble::tibble(
x = c(1, 2, 1, 2, 1, 2, 4, 4),
y = c(1, 1, 2, 2, 3, 3, 1, 2),
id = c("test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8")
)
# Plot the points
ggplot(my_points, aes(x = x, y = y, group = id)) +
geom_point() +
coord_fixed(ratio = 1) +
theme_map()
```
```{r}
# Turn points into hexagons
hexa_points <- make_polygons(my_points)
# Plot the new hexagons
ggplot(hexa_points, aes(x, y, group = id)) +
geom_polygon(colour = "black", fill = NA) +
coord_fixed(ratio = 1) +
theme_map()
```
```{r}
# Oh no! It is way off - lets fix it.
my_points <- fix_shape(my_points)
# Plot points
ggplot(my_points, aes(x = x, y = y, group = id)) +
geom_point() +
coord_fixed(ratio = 1) +
theme_map()
```
```{r}
# Turn points into hexagons
hexa_points <- make_polygons(my_points)
ggplot(hexa_points, aes(x, y, group = id)) +
geom_polygon(colour = "black", fill = NA) +
coord_fixed(ratio = 1) +
theme_map()
```
```{r}
# Add color by using the fill argument in ggplot.
# Remember to remove it from the geom_polygon then
(p <- ggplot(hexa_points, aes(x, y, group = id, fill = id)) +
geom_polygon(colour = "black", show.legend = FALSE) +
coord_fixed(ratio = 1) +
theme_map())
# Label hexagons
add_hexalabel(hexa_points, p)
```