R 在不更改打印限制或设置的情况下注释打印边缘;扩大;到0
我有一个ggplot对象。我想使用R 在不更改打印限制或设置的情况下注释打印边缘;扩大;到0,r,ggplot2,R,Ggplot2,我有一个ggplot对象。我想使用annotate()将标签添加到绘图顶部,以便标签的上边缘也是绘图的上边缘。使用默认设置时,这似乎是不可能的:在绘图的上边缘添加注释会导致y轴上限增加 创建绘图时,可以通过指定scale\u y\u continuous(expand=c(0,0))来解决此问题。但我不想这样做,部分原因是我喜欢默认的expand设置创建的y限制。鉴于此限制,是否可以使用annotate()将标签定位在绘图顶部 下面是一个演示问题的简单示例: library(ggplot2) p
annotate()
将标签添加到绘图顶部,以便标签的上边缘也是绘图的上边缘。使用默认设置时,这似乎是不可能的:在绘图的上边缘添加注释会导致y轴上限增加
创建绘图时,可以通过指定scale\u y\u continuous(expand=c(0,0))
来解决此问题。但我不想这样做,部分原因是我喜欢默认的expand
设置创建的y限制。鉴于此限制,是否可以使用annotate()
将标签定位在绘图顶部
下面是一个演示问题的简单示例:
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
yMax <- layer_scales(p)$y$range$range[2] # upper y-limit
p + annotate("label", x = 30, y = yMax, vjust = "top", label = "X")
库(ggplot2)
p一个简单的解决方案是设置y=Inf
,而不是使用y轴的最大值(yMax
)。代码是这样的:
# load library
library(ggplot2)
# load data
data(mtcars)
# define plot
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + annotate("label", x = 30, y = Inf, vjust = "top", label = "X")
#加载库
图书馆(GG2)
#加载数据
数据(mtcars)
#定义绘图
p一个简单的解决方案是设置y=Inf
,而不是使用y轴的最大值(yMax
)。代码是这样的:
# load library
library(ggplot2)
# load data
data(mtcars)
# define plot
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + annotate("label", x = 30, y = Inf, vjust = "top", label = "X")
#加载库
图书馆(GG2)
#加载数据
数据(mtcars)
#定义绘图
这有帮助吗
library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
geom_text(label = "X", x = 30, y = max(mtcars$wt))
这有用吗
library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
geom_text(label = "X", x = 30, y = max(mtcars$wt))
谢谢,但这不太对。如果运行代码,您将看到以这种方式放置标签会增加绘图的y上限。因此,标签没有放在绘图的顶部。谢谢,但它不太正确。如果运行代码,您将看到以这种方式放置标签会增加绘图的y上限。因此,标签不会位于绘图的顶部。谢谢。我不知道Inf
可以用来阻止我在帖子中描述的绘图扩展行为。谢谢。我不知道Inf
可以用来阻止我在帖子中描述的绘图扩展行为。