R 如何在ggplot中动态设置aes的轴比例限制?
我试图用一个带阴影的矩形注释ggplot柱状图,并试图找出是否有方法将参数传递给R 如何在ggplot中动态设置aes的轴比例限制?,r,ggplot2,R,Ggplot2,我试图用一个带阴影的矩形注释ggplot柱状图,并试图找出是否有方法将参数传递给ymax,该参数将动态地将矩形缩放到绘图区域的ymax 通过将annotate()的ymax值硬编码为大于绘图ymax,然后使用下图所示的coord_cartesian()对绘图进行“裁剪”,可以达到预期效果。然而,这需要我事先知道直方图的最大值是多少,如果我调整binwidth,它当然会改变。是否有某种方法可以动态缩放ymax ggplot( data = mtcars, aes( x=mpg
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
)
许多位置参数可以接受
Inf
或-Inf
,将它们设置为当前显示的最高/最低值。这是由绘图限制设置的,不一定是数据。然后您可以删除coord_cartesian
位,因为您不再需要硬编码限制
库(ggplot2)
ggplot(平均车流量,平均有效里程(x=mpg))+
几何图形直方图(binwidth=3,fill=“gray63”)+
注释(“rect”,xmin=21,xmax=22,ymin=0,ymax=Inf,fill=“gray18”,alpha=0.5)
如果出于任何原因,您需要绘图显示更高的限制,您可以看到Inf
将相应地进行调整:
ggplot(mtcars,aes(x=mpg))+
几何图形直方图(binwidth=3,fill=“gray63”)+
注释(“rect”,xmin=21,xmax=22,ymin=0,ymax=Inf,fill=“gray18”,alpha=0.5)+
ylim(0,12)
ymax=Inf
应该有用,如果我明白你想要什么,那就是,你是冠军。你愿意回答这个问题,这样我就可以给你一个代表点了吗?