Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在绘图区域外更改geom_text()中的字体大小?_R_Plot_Ggplot2_Geom Text - Fatal编程技术网

R 如何在绘图区域外更改geom_text()中的字体大小?

R 如何在绘图区域外更改geom_text()中的字体大小?,r,plot,ggplot2,geom-text,R,Plot,Ggplot2,Geom Text,我想注释一个绘图,我想注释在绘图区域之外。我发现它可以在绘图区域外添加注释,但我不知道如何更改标签的外观(对于我来说,最重要的是字体大小) 以下是上述解决方案的一个简单示例: library (ggplot2) library(grid) df=data.frame(y=c("dog1","dog2","dog3"),x=c(12,10,14),n=c(5,15,20)) p <- ggplot(df, aes(x,y)) + geom_point() # Add the annota

我想注释一个绘图,我想注释在绘图区域之外。我发现它可以在绘图区域外添加注释,但我不知道如何更改标签的外观(对于我来说,最重要的是字体大小)

以下是上述解决方案的一个简单示例:

library (ggplot2)
library(grid)

df=data.frame(y=c("dog1","dog2","dog3"),x=c(12,10,14),n=c(5,15,20))
p <- ggplot(df, aes(x,y)) + geom_point()

# Add the annotation
p <- p + geom_text(aes(label = "Hello World!", x = 0, y = 0), vjust = 2, hjust = 1)

# Code to override clipping
gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name == "panel"] <- "off"
grid.draw(gt)
库(ggplot2)
图书馆(网格)
df=数据帧(y=c(“dog1”,“dog2”,“dog3”),x=c(12,10,14),n=c(5,15,20))
p
library(ggplot2)
图书馆(网格)
df=数据帧(y=c(“dog1”,“dog2”,“dog3”),x=c(12,10,14),n=c(5,15,20))

p如果您使用链接问题中的示例(使用
annotation\u custom
textGrob
),请更改
cex
的值以更改字体大小。您也可以使用
fontsize
参数来设置字体大小,而不是
cex
。例如,不要使用
cex=1.5
,而是使用
fontsize=12
(或任何您喜欢的大小)。有关与文本外观相关的其他参数,请参阅
gpar
的帮助。我更喜欢这种方法:因为关闭剪裁可能会产生不必要的后果。如果您不打算使用
注释\u自定义
,则应为
几何图形文本创建新的数据框。否则,“Hello World!”将被过度抽签3次,每行父数据帧一次。这就是注释文本看起来参差不齐的原因。如果您在调用
geom_text
以展开“Hello World!”的三个副本时执行
x=c(1,3,5)
,则可以显示出现了过度抽签现象。@eipi10:这也让我感到不安。谢谢你的解释。
library (ggplot2)
library(grid)

df=data.frame(y=c("dog1","dog2","dog3"),x=c(12,10,14),n=c(5,15,20))
p <- ggplot(df, aes(x,y)) + geom_point()

# Add the annotation
p <- p + geom_text(size=8, colour="red", aes(label = "Hello World!", x = 0, y = 0), vjust = 2.5, hjust = 1)

# Code to override clipping
gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name == "panel"] <- "off"
grid.draw(gt)