相关疑难解决方法(0)

获取用户坐标中的边距线位置(mgp)

我试图做一些非传统的情节标签和想办法的转换line参数mtextaxis用户的坐标.

换句话说,我想将值转换par()$mgp为用户坐标.

这说明了问题:

setup_plot <- function() {
  par(mar = c(2, 10, 2, 2), oma = rep(2, 4))
  plot.new()
  plot.window(xlim = c(0, 1), ylim = c(0, 1))
  box(which = "plot", lwd = 2, col = "gray40")
  box(which = "figure", lwd = 2, col = "darkred")
  box(which = "outer", lwd = 2, col = "darkgreen")
  text(x = 0.5, y = 0.5, 
       labels = "Plot Region", 
       col = "gray40", font = 2)
  mtext(side = 3, …
Run Code Online (Sandbox Code Playgroud)

plot r

12
推荐指数
1
解决办法
2098
查看次数

在图表下方添加标题,在ggplot中添加四个图表

由于数据的隐私性,我使用mtcar数据集ggplot2来解释我的问题.

有四个图:

g1 <- ggplot(mtcars,aes(mpg,wt)) + geom_point()
g2 <- ggplot(mtcars,aes(mpg,disp)) + geom_point()
g3 <- ggplot(mtcars,aes(mpg,drat)) + geom_point()
g4 <- ggplot(mtcars,aes(mpg,qsec)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

我想把这四个图放在一个图中,所以我grid.arrange()在包中使用函数grid.Extra:

grid.arrange(g1,g2,g3,g4,ncol=2)
Run Code Online (Sandbox Code Playgroud)

原始图

现在,我想在这些图中的每个图下面添加标题,如下图所示(我在Word中修改它,所以它不漂亮) 修改后的照片 在询问之前,我已经搜索过SO,并且我知道如何在一个绘图下添加标题,例如,使用grid.text()或这三种方法 在ggplot2生成的绘图下方显示文本,或者element_text(vjust=-10)我不能将其应用于一个图中的四个绘图.同时,我在基础图中得到了一些结果如何为R中的每个图添加标题?或者使用par(mfrow)编译的数字面板的公共主标题,qustion是我想要进行ggplot2并且标题在每个情节下面,我该如何实现它?谢谢!

plot r title ggplot2 r-grid

6
推荐指数
1
解决办法
734
查看次数

用par生成的绘图的每个面板上的标题键(mfrow = c(x,y))

为了在科学出版物中使用,我想在一个用par(mfrow = c(3,1))生成的图中的三个图中添加一个键(A,B,C)作为"标题".为单个绘图添加一个漂亮的"标题"键的一个非常简单的解决方案是使用title()的'outer'参数(例如title(outer=T,adj=0,main="A",cex=1.1, col="black",font=2,line=-1)),但是当这将用于多个绘图时,所有标题最终都在同一个地方:

par(mfrow=c(3,1))
plot(rnorm(100),col="red")
title(outer=T,adj=0,main="A",cex=1.1,col="black",font=2,line=-1)
plot(rnorm(100),col="blue")
title(outer=T,adj=0,main="B",cex=1.1,col="black",font=2,line=-1)
plot(rnorm(100),col="green")
title(outer=T,adj=0,main="C",cex=1.1,col="black",font=2,line=-1)
Run Code Online (Sandbox Code Playgroud)

键上方另一个

我知道我可以使用布局和/或mtext(使用par(mfrow)编译的图形面板的公共主标题)但是我觉得可能有一个更容易的解决方案,我正在忽略(我没有访问Adobe Illustrator,并且会喜欢用R来完全生成图表.我可以通过使用布局得到的解决方案不够好(键与绘图分离得太多而左边不够),同时我发现边缘和坐标的游戏有点过于繁琐.

par(mar=c(1,2,2,1))
layout(matrix(seq(1,6),ncol=1),heights=rep(c(1,3),3))
plot.new()
text(0,0.5,"A",cex=1.1,font=2)
plot(rnorm(100),col="red")
plot.new()
text(0,0.5,"B",cex=1.1,font=2)
plot(rnorm(100),col="blue")
plot.new()
text(0,0.5,"C",cex=1.1,font=2)
plot(rnorm(100),col="blue")
Run Code Online (Sandbox Code Playgroud)

不受欢迎的结果 任何帮助将非常感激.即使答案是简单地说这是不可能的,这仍然会非常有帮助.

plot r

5
推荐指数
1
解决办法
4370
查看次数

标签 统计

plot ×3

r ×3

ggplot2 ×1

r-grid ×1

title ×1