Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot2: How to rotate a graph in a specific angle?

I would like to rotate a ggplot2 graph by a self-specified angle. I found how to rotate the axis text with element_text(angle = 20). I would like to do something similar with the whole plot.

Reproducible example:

set.seed(123)

data_plot <- data.frame(x = sort(rnorm(1000)),
                        y = sort(rnorm(1000)))

ggplot(data_plot, aes(y, x)) +
    geom_line() # + theme(axis.title.x = element_text(angle = 20))

This graph should be rotated:

enter image description here

like image 330
Joachim Schork Avatar asked Jan 18 '18 14:01

Joachim Schork


1 Answers

Here's a rough idea, calling your plot p:

library(grid)
pushViewport(viewport(name = "rotate", angle = 20, clip = "off", width = 0.7, height = 0.7))
print(p, vp = "rotate")

enter image description here

You'll probably want to tailor the width and height to the angle and aspect ratio you want.

like image 198
Gregor Thomas Avatar answered Sep 18 '22 18:09

Gregor Thomas