The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

ggtikz

CRAN status codecov R-CMD-check

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")

Basic Usage

  1. Create a ggplot.
  2. 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 ...

Advanced Usage

  1. Create a ggplot.
  2. Create a ggtikz canvas from the plot with ggtikzCanvas().
  3. Create ggtikz annotations with ggtikzAnnotation().
  4. Add the annotations to the canvas.
  5. 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 ...

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.