Awesome
<!-- README.md is generated from README.Rmd. Please edit that file -->ggtikz
<!-- badges: start --> <!-- badges: end -->ggtikz allows you to annotate plots created using ggplot2 with arbitrary TikZ code when rendering them with the tikzDevice. The annotations can be made using data coordinates, or with coordinates relative to a specified panel or the whole plot.
Plots with multiple panels (via facet_grid()
or facet_wrap()
) are
supported.
For a few examples, see the examples vignette.
Installation
You can install the latest ggtikz release from CRAN with:
install.packages("ggtikz")
Or get the development version from GitHub:
# install.packages("devtools")
devtools::install_github("osthomas/ggtikz", ref = "devel")
<!-- ## New in Devel
[![codecov (devel)](https://codecov.io/gh/osthomas/ggtikz/branch/devel/graph/badge.svg?token=0LPNGPFO5Z)](https://codecov.io/gh/osthomas/ggtikz)
[![R-CMD-check (devel)](https://github.com/osthomas/ggtikz/workflows/R-CMD-check/badge.svg?branch=devel)](https://github.com/osthomas/ggtikz/actions)
-->
Basic Usage
- Create a ggplot.
- Add annotations with
ggtikz()
.
library(ggplot2)
library(ggtikz)
p <- ggplot(mtcars, aes(disp, mpg)) + geom_point() # 1.
## tikz("plot.tikz")
ggtikz(p,
"\\fill[red] (0.5,0.5) circle (5mm);",
xy = "panel", panelx = 1, panely = 1)
## dev.off()
## Render with LaTeX ...
<img src="man/figures/README-basic-usage-1.png" width="50%" />
Advanced Usage
- Create a ggplot.
- Create a ggtikz canvas from the plot with
ggtikzCanvas()
. - Create ggtikz annotations with
ggtikzAnnotation()
. - Add the annotations to the canvas.
- Draw the plot and the annotations using tikzDevice.
library(ggplot2)
library(ggtikz)
p <- ggplot(mtcars, aes(disp, mpg)) + geom_point() # 1.
canvas <- ggtikzCanvas(p) # 2.
annot1 <- ggtikzAnnotation( # 3.
"
\\draw (0,0) -- (1,1);
\\draw (0,1) -- (1,0);
\\fill[red] (0.5,0.5) circle (5mm);
",
xy = "panel", panelx = 1, panely = 1
)
annot2 <- ggtikzAnnotation( # 3.
"\\draw[<-] (400,20) -- ++(0,3) node[at end, anchor=south] {(400,20)};",
xy = "data", panelx = 1, panely = 1
)
## tikz("plot.tikz")
p # 4. + 5.
canvas + annot1 + annot2
## dev.off()
## Render with LaTeX ...
<img src="man/figures/README-advanced-usage-1.png" width="50%" />