Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 避免在ggplot中沿轴剪切点_R_Ggplot2_Clipping - Fatal编程技术网

R 避免在ggplot中沿轴剪切点

R 避免在ggplot中沿轴剪切点,r,ggplot2,clipping,R,Ggplot2,Clipping,我正在绘制一个时间序列,以响应变量的平均值为点(y轴)按月(x轴) 将剪裁位于x轴上的值(即0值)。我可以更改y轴的限制以包含0以下的一些填充,但我不希望这样 有没有办法在x轴前方或上方绘制这些0点 您可以在比例上使用属性expand() y刻度每边10%的示例: ggplot(mydata, aes(y = value, x = mydate)) + geom_point() + scale_y_continuous(expand = c(0.1,0.1)) 试试这个 q <-

我正在绘制一个时间序列,以响应变量的平均值为点(y轴)按月(x轴)

将剪裁位于x轴上的值(即0值)。我可以更改y轴的限制以包含0以下的一些填充,但我不希望这样


有没有办法在x轴前方或上方绘制这些0点

您可以在比例上使用属性expand() y刻度每边10%的示例:

ggplot(mydata, aes(y = value, x = mydate)) +
  geom_point() +
  scale_y_continuous(expand = c(0.1,0.1))
试试这个

q <- qplot(1:10,1:10,size=I(10)) + scale_y_continuous(expand=c(0,0))
gt <- ggplot_gtable(ggplot_build(q))
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid.draw(gt)

q如果您使用的是基本图形,则可以使用clip()


随着ggplot2 3.0.0版的发布,您只需使用
coord\u笛卡尔(clip='off')

如果您使用的是一种不太常用的
coord.*
系统或函数(例如
coord.
coord.\u flip
),那么也可以使用
clip='off'
参数

my_plot + 
coord_flip(clip = 'off')

我不知道如何在ggplot脚本中实现这一点。我还试着画出这个图形,然后在上面剪切并添加一个点。但这也不起作用。谢谢,谢谢。这是通过扩展y轴的范围来实现的。它工作得很好,但我更喜欢上面巴蒂斯特建议的东西。i、 例如,x轴从0开始,但0点绘制在其顶部。不过,感谢您的帮助。我认为这应该是连续的(expand=c(0.1,0.1))
。可以,然后重试。非常感谢。以下代码中的子绑定在刻面时关闭剪裁:
gt$layout$clip[grep(“panel”,gt$layout$name)]如何将
gt
变回ggplot/gg对象?我怀疑你能,这就像将烤蛋糕变成面粉和鸡蛋。当绘图包含轴时,此解决方案不起作用;尝试将color=“red”添加到美学中,并将+theme_bw()添加到代码的第一行。轴出现在红色圆点的顶部。(我还没有找到解决办法。)谢谢你指出这一点!你的观点现在被纳入到答案中。当绘图包含轴时,此解决方案不起作用;尝试将color=“red”添加到美学中,并将+theme_bw()添加到代码末尾。轴出现在红色圆点的顶部。(我还没有找到解决办法。)这是一个很好的观点。我建议提出一个新问题来解决这个问题,因为这是一个单独的问题,也是一个好问题。
library(ggplot2)

qplot(x = 1:10, y = 1:10, size=I(10)) + 
  scale_y_continuous(expand=c(0,0)) +
  coord_cartesian(clip = 'off') +
  labs(title = "coord_cartesian(clip = 'off')")
my_plot + 
coord_flip(clip = 'off')