빈 플롯을 그리는 방법?


106

빈 플롯을 만들어야합니다. 이것이 내가 생각할 수있는 최선의 방법입니다.

plot(0, xaxt = 'n', yaxt = 'n', bty = 'n', pch = '', ylab = '', xlab = '')

더 간단한 솔루션이 있습니까?

PS : 완전히 비어 있고 축이 없습니다.

답변:


107

다음과 같은 것은 어떻습니까?

plot.new()

@ 아담, "R 적절한"이 무슨 뜻인지 모르겠습니다.
Joshua Ulrich

@Joshua, 죄송합니다 plot.new ()가 잘 작동하며 x11 ()이 필요하지 않습니다. x11 ()이 솔루션의 일부라고 생각했기 때문에 R이 적절하다고 말했지만 그것 없이는 작동합니다.
Adam SO

1
@Adam x11()은 새 장치를 여는 크로스 플랫폼 R 명령입니다. 장치가 열려 있고를 호출 plot.new()하면 현재 장치가 지워집니다.
Joshua Ulrich

1
x11()오버에 대한 이점이 dev.new()있습니까? 내 본능은 로컬 기본 장치가 무엇이든 수용하기 위해 후자를 사용하는 것이지만 그것이 어떻게 작동하는지 확실하지 않습니다.
Matt Parker

@Matt : x11()습관 때문에 사용 합니다. 나는 R로 플로팅하는 데 전문가는 아니지만 문서를 살펴본 후에 dev.new()는 아마도 더 좋을 것입니다.
Joshua Ulrich

63

나중에 그래픽을 추가하려면 누군가가 빈 플롯을 만들어야한다고 제안합니다. 그래서 사용

plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))

그래픽의 축 제한을 지정할 수 있습니다.


25

이것은 원래 솔루션보다 약간 더 간단합니다.

plot(0,type='n',axes=FALSE,ann=FALSE)

추가 할 필요가 없습니다 ann=FALSE. 어쨌든 빈 영역이됩니다. 그러나 훌륭한 솔루션입니다. 감사합니다!
MS Berends 19

22

다음은 플롯에서 아무것도 플롯하지 않으며 비어있는 상태로 유지됩니다.

plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")

이것은 for루프 또는 이와 유사한 것 내에서 나중에 선이나 점을 추가하려는 경우에 유용합니다 . 플로팅하려는 데이터를 기반으로 xlimylim값 을 변경하는 것을 잊지 마십시오.

참고 : 이것은 Boxplot, Violin 플롯 및 swarm 플롯에도 사용할 수 있습니다. add = TRUE플로팅 함수 에 추가 하고 플로팅 at =할 숫자를 지정 하도록 지정하는 것을 잊지 마십시오 ( horz = TRUE이러한 함수에서 설정하지 않은 경우 기본값은 x 축 입니다.


17

Adam은 위의 의견 ( "빈 플롯이 다중 플롯 (mfrow) 플롯에서 필러 역할을하고자했습니다.")에 따라 실제로 원하는 것은 mfg 옵션입니다.

    par(mfg=c(row,column))

-다음 플롯을 배치 할 위치를 제어합니다. 예를 들어, 3x3 멀티 플롯의 중간에 플롯을 넣으려면

    par(mfrow=c(3,3))
    par(mfg=c(2,2))
    plot(rnorm(10))

14

새 플롯 창을해야하고, 또한 좌표계, 당신이 필요 있도록 plot.new()하고 plot.window()다음 그래프 요소를 추가 시작할 수 있습니다 :

plot.new( )
plot.window( xlim=c(-5,5), ylim=c(-5,5) )

points( rnorm(100), rnorm(100) )
axis( side=1 )

예제 플롯


4

plot.new()그래도 솔루션에 관심이 있습니다 . 빈 플롯에서 "그리기"를 사용하여 지정된 좌표에 텍스트를 쓸 수 있습니다 text(x = ..., y = ..., your_text).


3
grid.newpage() ## If you're using ggplot

grid() ## If you just want to activate the device.

1
grid()그리드 패키지 AFAIK와 관련이 없습니다
baptiste

2

누구든지 ggplot2솔루션을 찾고 있다면 cowplot또는 patchwork패키지를 사용할 수 있습니다.

library(ggplot2)

### examples from cowplot vignettes
plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) +
  geom_point(size = 2.5)
plot.diamonds <- ggplot(diamonds, aes(clarity, fill = cut)) + 
  geom_bar() +
  theme(axis.text.x = element_text(angle = 0, vjust = 0.5))

library(cowplot)
### use NULL
plot_grid(plot.mpg, NULL, NULL, plot.diamonds,
  labels = c("A", "B", "C", "D"),
  ncol = 2
)

# Note: if you want to initialize an empty drawing canvas, use ggdraw() 

library(patchwork)
### use plot_spacer()
plot.mpg + plot_spacer() + plot_spacer() + plot.diamonds +
  plot_layout(ncol = 2) +
  plot_annotation(
    title = "Plot title",
    subtitle = "Plot subtitle",
    tag_levels = "A",
    tag_suffix = ")"
  )

2019 년 3 월 17 일에 reprex 패키지 (v0.2.1.9000)로 생성됨


1

위치가 설정된 일부 텍스트가있는 빈 플롯.

plot(1:10, 1:10,xaxt="n",yaxt="n",bty="n",pch="",ylab="",xlab="", main="", sub="")
mtext("eee", side = 3, line = -0.3, adj = 0.5)
text(5, 10.4, "ddd")
text(5, 7, "ccc")

텍스트를 추가하는 이유는 무엇입니까? "빈 플롯을 만드는 방법"과 무슨 관련이 있습니다. 전반적으로,이, 더 많은 문제 OP의 방법보다 더 복잡한 것 같다 plot(0,xaxt='n',yaxt='n',bty='n',pch='',ylab='',xlab='')추가하기 때문에, main = "", sub = ""심지어 당신이 그들없이 같은 결과를 얻을.
Gregor Thomas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.