programing

plot.new()에 오류가 있습니다. : R에서 그림 여백이 너무 큽니다.

abcjava 2023. 7. 10. 21:57
반응형

plot.new()에 오류가 있습니다. : R에서 그림 여백이 너무 큽니다.

저는 R은 처음이지만 더 작은 데이터 세트로 수많은 상관 그림을 만들었습니다.그러나 큰 데이터 세트(2gb+)를 플롯하려고 하면 플롯을 생성할 수 있지만 범례가 나타나지 않습니다.조언이 있습니까?아니면 대안?

library(gplots)
r.cor <- cor(r)
layout(matrix(c(1,1,1,1,1,1,1,1,2,2), 5, 2, byrow = TRUE))
par(oma=c(5,7,1,1))
cx <- rev(colorpanel(25,"yellow","black","blue"))
leg <- seq(min(r.cor,na.rm=T),max(r.cor,na.rm=T),length=10)
image(r.cor,main="Correlation plot Normal/Tumor data",axes=F,col=cx)
axis(1, at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]], 
    cex.axis=0.9,las=2)
axis(2,at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]],
     cex.axis=0.9,las=2)
image(as.matrix(leg),col=cx,axes=T)     

오류가 .plot.new() 이 너무 .

tmp <- round(leg,2)
axis(1,at=seq(0,1,length=length(leg)), labels=tmp,cex.axis=1)

이 오류는 단순히 "플롯" 창이 너무 작기 때문에 Rstudio에서 발생할 수 있습니다."파일, 플롯, 패키지, 도움말, 뷰어"를 확대하여 도움이 되는지 확인해 보십시오!

는 당신의 문제당입만작수영치역은 2니다에 작은 입니다.layout()호출이 그래프는 말할 것도 없고 기본 여백만 포함할 만큼 충분히 크지 않습니다.

일반적으로 장치의 플로팅 영역 크기가 실제로 어떤 플로팅도 수행할 수 있을 만큼 크지 않은 경우 이 오류가 발생합니다.OP의 경우 모든 하위 플롯과 그 여백을 포함하고 그리기에 충분히 큰 플롯 영역을 남기기에는 너무 작은 플롯 장치가 문제였습니다.

플롯 탭이 너무 작아서 여백, 플롯 영역 등을 포함할 수 없을 경우 RStudio 사용자에게 이 오류가 발생할 수 있습니다.이는 해당 창의 실제 크기가 그래픽 장치의 크기이기 때문입니다.문제가 . 은 이들은독아문다닙니와 또 입니다. RStudio의 플롯 창은 다음과 같은 또 다른 플롯 장치일 뿐입니다.png(),pdf(),windows(),그리고.X11().

솔루션은 다음과 같습니다.

  1. 여백의 크기를 줄일 수 있습니다. 특히 OP의 경우와 같이 동일한 장치에 여러 개의 플롯을 그리려는 경우 유용할 수 있습니다.

  2. 장에대호한장서물예치치리수적의증가에출치예치수증:(가▁incre▁ofasingensions)에서 치수 (예:png(),pdf()etc) 장치가 표시됨) 또창장포창함된가/

  3. 여백 크기 등을 제어할 수 있으므로 그래프의 텍스트 크기를 줄입니다.

여백 크기 줄이기

문제의 원인이 되는 라인 앞에서 다음을 시도합니다.

par(mar = rep(2, 4))

그런 다음 두 번째 이미지를 플롯합니다.

image(as.matrix(leg),col=cx,axes=T)

당신은 여백의 크기를 가지고 놀 필요가 있을 것입니다.par()이 문제를 해결하기 위해 보여주는 콜.

장치 크기 늘리기

또한 표시할 실제 장치의 크기를 늘려야 할 수도 있습니다.

은 지막팁저,▁the를 저장하세요.par()의 기본값을 합니다.par()문의처:

op <- par(oma=c(5,7,1,1))

그리고 음모가 끝날 때.

par(op)

RStudio에서 이 메시지가 표시되면 Plots 탭에서 '브롬쇠' 그림 "Clear All Plots"를 클릭하고 Plot()을 다시 시도하면 됩니다.

enter image description here

R스튜디오에서는 가끔 이런 일이 발생합니다.이 문제를 해결하기 위해 외부 창(Windows 전용)으로 플롯을 시도할 수 있습니다.

windows() ## create window to plot your file
## ... your plotting code here ...
dev.off() 

R Studio에서 이 오류가 발생하여 사이드바를 클릭하고 오른쪽에서 왼쪽으로 드래그하여 사이드바를 크게 수정했습니다.

사진: https://janac.medium.com/error-in-plot-new-figure-margins-too-large-in-r-214621b4b2af

개체가 목록인지 벡터인지 확인합니다.이 작업을 수행하려면 다음을 입력합니다.is.list(yourobject)이것이 사실이면 이름을 변경해 보십시오.x<-unlist(yourobject)이렇게 하면 그림을 그릴 수 있는 벡터가 됩니다.

enter image description here

RStudio를 사용하는 경우 이 영역을 확대/축소합니다.

저는 오늘 이 오류를 발견했습니다.처음에, 나는 그것을 출력하려고 했습니다..jpeg너비와 높이가 낮은 파일입니다.

jpeg("method1_test.jpg", width=900, height=900, res=40)

나중에 너비와 높이를 다음과 같이 늘렸습니다.

jpeg("method1_test.jpg", width=1900, height=1900, res=40)

오류가 발생하지 않았습니다.:)

해상도를 가지고 놀 수도 있습니다. 해상도가 높으면 너비와 높이가 더 필요합니다.

고차원 데이터를 플롯할 때 이 오류가 발생했습니다.이러한 상황이라면 다차원적 확장을 시도해 보십시오. http://www.statmethods.net/advstats/mds.html

저는 (RStudio를 사용하여) 이 오류로 몇 주 동안 고생했습니다.저는 플롯 창을 점점 더 크게 움직여 보았지만, 그것은 지속적으로 도움이 되지 않았습니다.애플리케이션을 더 큰 모니터로 이동(끌어)했더니 문제가 사라졌습니다!깜짝 놀랐어요...너무 많은 시간을 낭비했습니다...내 코드가 맞는 줄 알았어요

마진이 낮으면 항상 새 플로팅 장치로 시작하는 것이 좋습니다.

dev.new()
# plot()
# save your plot
dev.off()

수용할 수 없는 큰 것을 플롯하지 않는 한 마진 오류가 발생하지 않습니다.

R스튜디오 플롯 캔버스에서 플롯 폭과 높이를 제한하고 있습니다.그러나 Rmarkdown 코드 청크에서 플롯을 만들면 플롯 영역이 용지 크기에 따라 설정되므로 캔버스 필드 제한 없이 작동합니다.

예를 들어:

    ```{r}
#inside of code chunk in Rmarkdown
        grid <- par(mfrow=c(4, 5))
        plot(faithful, main="Faithful eruptions")
        plot(large.islands, main="Islands", ylab="Area")
        ...
        par(grid)
    ```

저는 오늘 같은 오류를 발견했습니다."Clear all Plots(모든 플롯 지우기)" 버튼을 사용해 보았지만 동일한 오류가 발생했습니다.그러면 이 속임수가 저에게 효과가 있었습니다, 끌어서 플롯 영역을 늘리도록 해보세요. 확실히 도움이 될 겁니다.

방금 모든 플롯 지우기를 사용한 후 다시 플롯 명령을 내렸는데 도움이 되었습니다.

언급URL : https://stackoverflow.com/questions/12766166/error-in-plot-new-figure-margins-too-large-in-r

반응형