我正在尝试用阴影矩形为ggplot直方图添加注释,并试图找出是否存在将参数动态传递给ymax
的方法,该参数会将矩形动态缩放到ymax
的绘图区域。
我可以通过将annotate()
的ymax值硬编码为大于图ymax
,然后使用示例中显示的coord_cartesian()
裁剪图来达到预期的效果下面。但是,这需要我先验地知道直方图的最大值是多少,如果我调整binwidth
当然会改变。有什么方法可以动态缩放ymax
?
ggplot(
data = mtcars,
aes(
x=mpg
)
)+
geom_histogram(
binwidth = 3,
fill = "gray63"
)+
annotate(
"rect",
xmin = 21,
xmax = 22,
ymin = 0,
ymax = 10, #hardcode ymax to be > plot ymax
fill = "gray18",
alpha = 0.5
)+
theme_bw()
coord_cartesian(
ylim = c(0,8) #crop back to plot ymax
)
答案 0 :(得分:2)
许多位置参数可以接受public class Task
{
public int TaskID { get; set; }
public int? PeriodicTaskID { get; set; }
public virtual PeriodicTask PeriodicTask { get; set; }
}
public class PeriodicTask
{
public int PeriodicTaskID { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
}
或Inf
,将其设置为当前显示的最高/最低值。这是由绘图限制设置的,不一定是数据设置的。然后,您可以删除-Inf
位,因为您不再需要对限制进行硬编码。
coord_cartesian
如果出于某种原因您需要该图以显示更高的限制,则可以看到library(ggplot2)
ggplot(mtcars, aes(x = mpg)) +
geom_histogram(binwidth = 3, fill = "gray63") +
annotate("rect", xmin = 21, xmax = 22, ymin = 0, ymax = Inf, fill = "gray18", alpha = 0.5)
随后将进行相应调整:
Inf