R:如何拉伸x轴值?

时间:2015-12-15 21:00:58

标签: r

我有一个非常基本的问题。我已经创建了一个基本的x,y-plot和我的x值,其范围从-1000到0我想在x轴上拉伸最后50个单位,这样从-1000到-50值默认是一个单位相隔但是从-50到0,他们应该相隔10个单位。这可能吗 ???那个像我这样的人会怎么做?

谢谢

更新: 哦,抱歉,我想......好吧没关系,thnx的提示:

例如

x <- c(-1000:-1)
y <- c(1:1000)
plot(x,y)

现在情节是简单的线性但我希望最后50个x-ticks相隔10个单位?这有道理吗?

2 个答案:

答案 0 :(得分:2)

如何进行x轴转换:

x <- c(-1000:-1)
y <- c(1:1000)
plot(x,y, type='l')

stretch <- function(x){
  y <- x
  y[x >= -50] <- 10*x[x >= -50]
  y[x < -50] <- x[x < -50] - 500
  y
}

plot(stretch(x), y, type='l', axes=FALSE, frame.plot=TRUE, xlab="", ylab="")

或者,您可以使用lattice作为初学者:

df <- data.frame(x,y)
df$panel <- as.integer(df$x > -50)
library(lattice)
with(df, xyplot(y~x|panel, scales=list(x=list(relation="free"))))

但需要进行大量调整才能摆脱图表之间的中断。

答案 1 :(得分:1)

一种方法是转换x并重新标记x轴:

xt <- x
xt[x < -50] <- x[x < -50] - 450
xt[x >= -50] <- 10*x[x >= -50]

plot(xt,y,xaxt="n")
axis(1,at=c(200*(-(5:1))-450,-500,-250,0),
     labels = c(-1000,-800,-600,-400,-200,-50,-25,0))

enter image description here