2016-07-30 4 views
0

다음 스크립트를 실행하여 x 축을 변경하려고했습니다. 나는 Stack Overflow에서 주어진 다른 답을 따랐다. 그러나 나는 내가 원하는 것을 얻지 못한다. 원래 x 축이 0에서 1로 이동하지만 난 20x 축을 왜 바꿀 수 있습니까? R

x<-c(0,0.1,0.2,0.25,0.30,0.35,0.40,0.60,0.90,1) 
y<-c(0,0.014,0.41165,0.258,0.57,0.57,0.1803,0.5844,0.10185,0.085) 
da<-cbind(x,y) 
dat=data.frame(da) 
plot(y~x,data=dat,xaxt="n") 
pas=c(0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20) 
axis(1, at=1:20,labels=pas) 

이 스크립트는 지난 시점에서 단지 0과 그림을 생산하고 0에서 그것을 변경하고 싶습니다. 0에서 20까지의 x 축이 필요합니다. 감사합니다.

+0

'플롯 (Y ~ X, 데이터 = 날엔, xaxt = "N", xlim = C를 (0,20))' – steveb

+0

몇 가지 의견을 다음과 같이'plot'를 호출 할 수 있습니다 'x'의 원소의 수는 10이지만'y'의 원소의 수는 11입니다.'pas'는'pas <- 0 : 20' (당신은리스트에서 9 개를 잃어 버렸습니다)을 수행함으로써 설정 될 수 있습니다. 데이터 프레임을 만들기 위해'cbind'가 필요하지 않습니다. 단지'data.frame (x = x, y = y)'와 같은 것을 할 수 있습니다. – steveb

+0

이제는 y와 x가 같은 n을가집니다. 나는 xlim을 바꾸고 싶지 않다. 나는 x 축이 다른 값을 갖도록하고 싶다. 0에서 20 대신 0에서 1까지. x 축에 대해 새 레이블을 만들고 싶습니다. 나 자신을 설명 할 수 있니? – Cebs

답변

0

왜 이렇게하려고하는지 잘 모르겠지만 다음과 같이하면됩니다.

x  <- c(0,0.1,0.2,0.25,0.30,0.35,0.40,0.60,0.90,1) 
y  <- c(0,0.014,0.41165,0.258,0.57,0.57,0.1803,0.5844,0.10185,0.085) 
dat  <- data.frame(x = x, y = y) 
x.range <- c(0,20) 
x.labels <- x.range[1]:x.range[2] 
pas  <- seq(0, 1, length.out = length(x.labels)) 
plot(y ~ x, data = dat, xaxt = "n", xlim = c(0,1)) 
axis(1, at = pas, labels = x.labels, cex.axis=0.65) 

enter image description here

+0

Great Steveb를 사용하여 편집을 추가했습니다! 그게 내가 필요한 것. 고마워요. – Cebs

+0

@Cebs는 명확해야합니다.'ggplot' 대답을 원한다면 받아 들여야합니다. 어느 쪽이 당신을 위해 질문에 가장 적절하게 대답 하나. – steveb

0

xlim/ylim을 놓친 것 같습니다.

y 축을 사용 했습니까? 그럼 그냥 사용

plot(y~x,data=dat,ylim=c(0,20)) 

plot(y~x,data=dat,xlim=c(0,20)) # 당신이 x 축

을 볼 수있는 'xaxt = "n"을'제거해야하지만 나는이 범위 중에서 가장 좋습니다 확실하지 않다 어느 쪽이든 데이터의 나는이 작업을 수행하려고하는 이유는 확실하지 않지만 ggplot2

library(ggplot2) 
qplot(x,y,data=dat)+ scale_x_continuous(labels=c("0"="fake0","0.25"="fake5","0.5"="fake10",".75"="fake15","1"="fake20"))# replace 'fake#' with anything 

plot custom x 를 사용

.

+0

고마워요.하지만 제 의도는 x 축을 완전히 바꾸는 것입니다 ... 다른 xlim을 소개하지 마라. 자, 이제부터 x 축이 1에서 0이 될 때까지 축의 레이블을 0에서 20으로 변경하고 싶습니다. – Cebs

+0

쉬운 방법은 20을 곱하고 xlim을 사용하여 x 값을 변환하는 것입니다. 그러나 이것은 조금 이상하다는 것을 인정해야합니다. 왜 그걸하고 싶니? – thisisrg

+0

이것은 단지 예입니다. 내 진짜 문제는 이전에 플롯하지 않고 x 축을 변형해야한다는 것입니다. 플로팅 후에 x 축에 곱하려고하면 여전히 얻지 못합니다. 문제는 축 기능입니다.그러나 나는 문제가 어디 있는지 모른다. x <-c (0,0.1,0.2,0.25,0.30,0.35,0.40,0.60,0.90,1); y <-c (0,0.014,0.41165,0.258,0.57,0.57,0.1803,0.5844,0.10185,0.085); da <-cbind (x, y); dat = data.frame (da); plot (y ~ x, data = dat, xaxt = "n"); 축 (1, x * 20,); – Cebs