旋转整个 ggplot() 而不旋转任何文本 R [英] Rotate entire ggplot() without rotating any text R

查看:16
本文介绍了旋转整个 ggplot() 而不旋转任何文本 R的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望旋转整个绘图、轴和所有内容,但保持轴标签和标题的原样,以便水平阅读.

I am looking to rotate the entire plot, axis and all, but keeping the axis labels and title how they are so they can be read horizontally.

library(ggplot2)
data(mtcars)

ggplot() + geom_point(data=mtcars,aes(x=mpg,y=cyl)) + 
  labs(title = "MPG vs Cylinders",
       x = "", y = "") + 
  theme(plot.title = element_text(size=40),axis.text.x=element_text(size=35),axis.text.y=element_text(size=35))

因此,此代码生成的图理想情况下会逆时针旋转 30 度左右,如下所示:

So the plot that this code generated would ideally be rotated 30 degrees or so counter-clockwise like so:

但标题仍应水平显示,而不是 30 度转弯.与轴标签相同(我将绘图放在 MS word 中并用绿色小圆圈旋转它).有什么想法吗?有没有可能?

But the title should still be displayed horizontal, instead of with a 30 degree turn. Same with the axis labels (I put the plot in MS word and rotated it with the little green circle). Any thoughts? Is it even possible?

推荐答案

这对你有用吗(下面的代码)

Would this work for you (code below)

# install.packages("ggplot2", dependencies = TRUE)
library(ggplot2)

rotation <- 30

p <- ggplot() + geom_point(data=mtcars,aes(x=mpg,y=cyl)) + labs(title = "MPG vs Cylinders", x = "", y = "") + theme(plot.title = element_text(size=20), axis.text.x=element_text(size=15),axis.text.y=element_text(size=15)) + theme(text = element_text(angle=(-1*rotation))) 

# install.packages("grid", dependencies = TRUE)
library(grid)
print(p, vp=viewport(angle=rotation,  width = unit(.75, "npc"), height = unit(.75, "npc")))

这篇关于旋转整个 ggplot() 而不旋转任何文本 R的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆