플롯 축의 눈금 간격을 어떻게 변경할 수 있습니까?
베이스 플롯 또는 함께 어떤 매개 변수를 사용해야 rgl
합니까?
답변:
기본 그래프 에서이를 달성하는 데는 최소한 두 가지 방법이 있습니다 (제 예는 x 축에 대한 것이지만 y 축에 대해서는 동일하게 작동 함).
사용 par(xaxp = c(x1, x2, n))
또는 plot(..., xaxp = c(x1, x2, n))
위치 (하기 정의 x1
및 x2
극도의 눈금)과 눈금 사이의 간격의 수를 ( n
). 따라서 n+1
그려지는 눈금 표시의 수입니다. (대수 눈금을 사용하지 않는 경우에만 작동합니다 ?par
. 대수 눈금의 동작은을 참조하십시오 .)
축 그리기를 완전히 억제하고 나중에를 사용하여 눈금을 추가 할 수 있습니다 axis()
.
축 그리기를 억제하려면 plot(... , xaxt = "n")
.
그런 다음 전화 axis()
로 side
, at
그리고 labels
: axis(side = 1, at = v1, labels = v2)
. 함께 side
, 축 (1 = x 축, 2 = Y 축)의 측면을 언급 v1
진드기 (예를 들어, 위치를 포함하는 벡터 인 c(1, 3, 5)
0 내지 6 및 축 범위는 세 개의 표시를 원하는 경우) 및 v2
지정된 눈금 표시에 대한 레이블을 포함하는 벡터 ( v1
예 : 와 같은 길이 여야 함 c("group a", "group b", "group c")
) 참조 ?axis
및 이 방법의 예를 들어 stats.stackexchange의 게시물에 대한 내 업데이트 된 대답 .
formatC
하거나 prettyNum
전달할 문자 벡터를 만듭니다 labels
. 예 :formatC(seq(0,2,0.5), digits = 1, format = "f")
n
실제로 눈금의 수 이지만 밝혀졌습니다 -1
. 에서 1
까지 눈금을 원했고 9
설정해야했습니다 xaxp = c(1, 9, 8)
. 그렇지 않으면 원하는 결과를 얻지 못했습니다.
par(xaxp..)
. 나는 안에 넣어 경우에만 작동합니다plot(xaxp...)
기본 그래픽을 사용하는 가장 쉬운 방법은 그리기 축에서 플로팅 기능을 중지 한 다음 직접 그리는 것입니다.
plot(1:10, 1:10, axes = FALSE)
axis(side = 1, at = c(1,5,10))
axis(side = 2, at = c(1,3,7,10))
box()
las
에 대한 호출에 추가 할 수 있고 axis()
눈금 레이블의 방향을 제어하는 ? par의 그래픽 매개 변수 를 보십시오 . 예 axis(side = 1, at = c(1,5,10), las = 2)
. axis()
chron 객체에 대한 함수 가 있는지 조사 하거나 이미 axis()
함수 가있는 R의 Date Time 클래스 사용을 고려할 수 있습니다 (예 : axis.Date()
' "Date"'클래스의 경우).
시간이 x 축이고 강도가 y 축인 데이터 세트가 있습니다. 먼저 다음을 사용하여 축의 레이블을 제외한 모든 기본 축을 삭제해야합니다.
plot(Time,Intensity,axes=F)
그런 다음 다음을 사용하여 플롯의 요소를 다시 작성합니다.
box() # create a wrap around the points plotted
axis(labels=NA,side=1,tck=-0.015,at=c(seq(from=0,to=1000,by=100))) # labels = NA prevents the creation of the numbers and tick marks, tck is how long the tick mark is.
axis(labels=NA,side=2,tck=-0.015)
axis(lwd=0,side=1,line=-0.4,at=c(seq(from=0,to=1000,by=100))) # lwd option sets the tick mark to 0 length because tck already takes care of the mark
axis(lwd=0,line=-0.4,side=2,las=1) # las changes the direction of the number labels to horizontal instead of vertical.
따라서 at = c(...)
눈금을 표시 할 위치 모음을 지정합니다. 여기에 0, 100, 200, ..., 1000에 표시를하고 싶습니다. seq(from =...,to =...,by =...)
제한과 증분을 선택할 수 있습니다.
R이 소수 또는 0을 추가하지 않도록하려면 ... axt를 사용하여 x 축이나 y 축 또는 둘 다 그리기를 중지 할 수 있습니다. 그런 다음 고유 한 눈금과 레이블을 추가 할 수 있습니다.
plot(x, y, xaxt="n")
plot(x, y, yaxt="n")
axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))
flag
를 사용하여 프로그래밍 방식으로 켜고 끌 수 yaxt=flag
있지만 표준 레이블을 켜고 설정 flag <- "s"
하고 표준 레이블을 원하지 않으면 사용하십시오 flag <- "n"
(이것을 추가하면 "S") 찾을 때