Tufte의 축을 달성하기 위해 R 플롯에서 경계선 제거


18

다음 그래프를 고려하십시오.

x <- 1:100
y1 <- rnorm(100)
y2 <- rnorm(100)+100

par(mar=c(5,5,5,5))

plot(x,y1,pch=0,type="b",col="red",yaxt="n",ylim=c(-8,2),ylab="")
axis(side=2, at=c(-2,0,2))
mtext("red line", side = 2, line=2.5, at=0)

par(new=T)
plot(x,y2,pch=1,type="b",col="blue",yaxt="n",ylim=c(98,108), ylab="")
axis(side=4, at=c(98,100,102), labels=c("98%","100%","102%"))
mtext("blue line", side=4, line=2.5, at=100)

Tufte 스타일을 달성하기 위해 자동으로 생성 된 테두리를 제거하고 축선 만 보존하려면 어떻게해야합니까?


5
예를 들어 의 bty인수를 살펴보십시오 . 호출시이 인수를 전달할 수 있습니다 . ?parbty="n"plot
Glen_b-복지 모니카

3
FWIW, Tufte는 더 나아갔습니다. 그는 일부 경우에 축의 일부를 지우면 추가 정보를 제공하여 각 축을 효과적으로 데이터 범위를 시각적으로 표시하는 방법을 보여주었습니다. 이로부터 영감을 얻어 1989 년에 나는이 디자인을 포함하는 작은 여러 줄거리 (Tufte와 Bill Cleveland의 그룹에서 영감을 얻은)를 생성하는 소프트웨어를 작성하고 그 결과 수백만 개의 그래픽을 만들었습니다. 많은 양의 데이터를 시각적으로 마이닝해야 할 때 그러한 원칙이 실제로 작동합니다.
whuber

@whuber 효과적으로, 축을 일종의 깔개 플롯으로 바 꾸었습니까?
Silverfish

2
@Silver 깔개 줄거리를 그리는 것은 별개의 문제입니다. 저는 또한 그렇게했습니다. 그러나 러그 플롯이없는 경우에도 각 축 그리기를 중지하고 시작할 위치를 선택할 수 있습니다. 최소로 시작하여 최대로 중지하면 각 한계 데이터 분포의 전체 범위를 시각적으로 표시 할 수 있습니다.
whuber

2
@ whuber 고마워, 나는 당신이 무엇을 말하고 있는지 이해합니다-Tufte는 이것을 "범위 프레임"이라고 부릅니다 (그리고 극한의 줄을 멈추게 할뿐만 아니라 최종 레이블을 사용하여 값을 나타냅니다-그가 무엇을 "범위 레이블이있는 범위 프레임"을 호출합니다. 참조를 원하는 후기 독자의 경우, 이것은 정량 정보의 시각적 표시, 7 장 ( "다기능 그래픽 요소")에서 가져온 것입니다. 이것은 잘 보인 스레드이기 때문에 "Tufte의 축"이 실제로 의미하는 것의 그림이 추가되어 있습니다 (그리고 약간의 R 코드가 주어진 경우).
Silverfish

답변:



5

이 작업은 간단합니다 axes=FALSE. 인수 만 포함하면 됩니다. 치다:

x  <- 1:100
y1 <- rnorm(100)
y2 <- rnorm(100) + 100

windows()
  par(mar=c(5,5,5,5))
  plot(x, y1, pch=0, type="b", col="red", yaxt="n", ylim=c(-8,2), ylab="", axes=F)
  axis(side=2, at=c(-2,0,2))
  mtext("red line", side = 2, line=2.5, at=0)

  par(new=T)
  plot(x, y2, pch=1, type="b", col="blue", yaxt="n", ylim=c(98,108), ylab="", axes=F)
  axis(side=4, at=c(98,100,102), labels=c("98%","100%","102%"))
  mtext("blue line", side=4, line=2.5, at=100)

여기에 이미지 설명을 입력하십시오

이것은 히스토그램에서도 동일하게 작동합니다.

windows()
hist(y1, axes=F)

여기에 이미지 설명을 입력하십시오


4

당신이 사용하는 경우

par(bty = 'n') 

동물원을 위해 그것을 줄 것입니다 음모를 호출하기 전에. 또한 플로팅 명령에 전달할 수없는 다양한 상황에서이 문제를 해결할 수도 있습니다.

(그림의 다른 종류의 프레임에 대해서는 par () 도움말에서 bty 옵션을 확인하십시오)


0

Tufte를 참조하지 않고 플롯에서 테두리를 제거하는보다 일반적인 질문에 대답하고 있습니다.

히스토그램의 경우 btn = 'n'가 경계를 없 got습니다.

히스토그램에서 작동하고 모든 유형의 플롯에서 작동해야하는 해결책은 경계선의 선 유형을 보이지 않게 설정하는 것입니다. lty = "blank"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.