将无限值移离边缘

时间:2016-11-23 15:00:01

标签: r ggplot2

我喜欢x轴上的无限值表示为图形边缘上的半点的方式;毕竟,什么可能会出现在-Inf的左边?

不幸的是,我的任务是将x轴上的无限值绘制为全点,远离边缘并使用相应的刻度线。

知道如何控制这些点吗?

要绘制的数据示例:

v <- c(-Inf, -5:5, Inf)
X <- data.frame(x = v, y= plogis(v))
ggplot(X) + geom_point(aes(x=x, y=y))

要重新迭代,我需要两个极端点远离边缘并带有相应的刻度线。

谢谢

1 个答案:

答案 0 :(得分:5)

这是一个非常简单的解决方法,我们将-Inf和Inf设置为实数,然后使用Inf和-Inf重新标记x轴:

编辑:使Inf值的重新分配更加动态

X$x[!is.finite(X$x)]<-sign(X$x[!is.finite(X$x)])*(abs(max(v[is.finite(v)]))+1) 

ggplot(X) + geom_point(aes(x=x, y=y)) + scale_x_continuous(breaks=X$x, labels = v)

enter image description here