programing

R에서 x 축 눈금으로 플로팅 할 실제 x 축 값을 지정하는 방법

sourcetip 2021. 1. 14. 23:42
반응형

R에서 x 축 눈금으로 플로팅 할 실제 x 축 값을 지정하는 방법


R에서 플롯을 만들고 있으며 R에 의해 플롯되는 x 축 값이 마음에 들지 않습니다.

예를 들면 :

x <- seq(10,200,10)
y <- runif(x)

plot(x,y)

그러면 X 축에 다음 값이있는 그래프가 표시됩니다.

50, 100, 150, 200

그러나 10,20, 30 ... 200변수 x에 저장된 20 개의 값을 X 축 값 으로 플로팅하고 싶습니다 . 나는 수많은 블로그와 간결한 매뉴얼을 샅샅이 뒤져 봤습니다. 몇 시간 동안 검색 한 후 유용한 것을 가장 가깝게 찾은 것은 다음 (요약 된) 지침입니다.

  1. 호출 plot()또는 par(), 인수 지정xaxt='n'
  2. axis()예를 들어 전화axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)

나는 그것을 시도했고 결과 플롯에는 x 축 값이 전혀 없었습니다. 누군가가 이것을하는 방법을 알고있을 가능성이 있습니까? 아무도 이것을 시도한 적이 없다는 것을 믿을 수 없습니다.


에 대한 도움말 페이지에서 질문에 대한 답변을 찾을 수 ?axis있습니다.

다음은 데이터로 수정 된 도움말 페이지 예제 중 하나입니다.

옵션 1 : xaxp축 레이블을 정의하는 데 사용

plot(x,y, xaxt="n")
axis(1, xaxp=c(10, 200, 19), las=2)

옵션 2 : 사용 atseq()레이블을 정의합니다 :

plot(x,y, xaxt="n")
axis(1, at = seq(10, 200, by = 10), las=2)

두 옵션 모두 동일한 그래픽을 생성합니다.

여기에 이미지 설명 입력


추신. 많은 수의 레이블이 있으므로 텍스트를 플롯에 맞추려면 추가 인수를 사용해야합니다. las레이블을 회전하는 데 사용 합니다.


?axis문서를 자세히 살펴보십시오 . labels인수 설명을 보면 다음과 같은 것을 알 수 있습니다.

"a logical value specifying whether (numerical) annotations are 
to be made at the tickmarks,"

그러니 그냥 참으로 변경하면 진드기 레이블을 얻을 수 있습니다.

x <- seq(10,200,10)
y <- runif(x)
plot(x,y,xaxt='n')
axis(side = 1, at = x,labels = T)
# Since TRUE is the default for labels, you can just use axis(side=1,at=x)

Be careful that if you don't stretch your window width, then R might not be able to write all your labels in. Play with the window width and you'll see what I mean.


It's too bad that you had such trouble finding documentation! What were your search terms? Try typing r axis into Google, and the first link you will get is that Quick R page that I mentioned earlier. Scroll down to "Axes", and you'll get a very nice little guide on how to do it. You should probably check there first for any plotting questions, it will be faster than waiting for a SO reply.


Hope this coding will helps you :)

plot(x,y,xaxt = 'n')

axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990"))

In case of plotting time series, the command ts.plot requires a different argument than xaxt="n"

require(graphics)
ts.plot(ldeaths, mdeaths, xlab="year", ylab="deaths", lty=c(1:2), gpars=list(xaxt="n"))
axis(1, at = seq(1974, 1980, by = 2))

참조 URL : https://stackoverflow.com/questions/11775692/how-to-specify-the-actual-x-axis-values-to-plot-as-x-axis-ticks-in-r

반응형