ggplot2를 사용할 때 지속적으로 잘못된 그래픽 상태 오류가 발생함
저는 제 데이터 프레임과 코드가 괜찮다고 생각합니다.사실, 저는 최대한 기본적인 것들을 만들기 위해 데이터 프레임의 일부와 대부분의 그래핑 코드를 제거했습니다.그래도 이해가 갑니다.
Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) :
invalid graphics state
여기 뭐가 잘못됐나요?데이터는 다음과 같습니다.
date trt var val
1/8/2008 cc sw5 0.2684138
1/8/2008 cc sw15 0.2897586
1/8/2008 cc sw5 0.2822414
2/8/2008 cc sw5 0.2494583
2/8/2008 cc sw5 0.2692917
2/8/2008 cc sw15 0.2619167
2/8/2008 cc sw5 0.204375
3/8/2008 cc sw5 0.2430625
3/8/2008 cc sw5 0.2654375
3/8/2008 cc sw5 0.2509583
3/8/2008 cc sw5 0.2055625
1/8/2008 ccw sw15 0.2212414
1/8/2008 ccw sw5 0.3613448
1/8/2008 ccw sw5 0.2607586
2/8/2008 ccw sw5 0.2087917
2/8/2008 ccw sw15 0.3390417
2/8/2008 ccw sw5 0.2436458
2/8/2008 ccw sw5 0.290875
3/8/2008 ccw sw5 0.20175
3/8/2008 ccw sw15 0.328875
3/8/2008 ccw sw5 0.2328958
3/8/2008 ccw sw5 0.2868958
이 데이터를 사용할 때 다음과 같이 날짜를 지정합니다.
df<-df[order(as.Date(df$date,format="%d/%m/%Y")),,drop=FALSE]
산점도를 만들고자 합니다.
ggplot(data = df,aes(x = date,y = val)) +
geom_point(aes(group = trt))
저는 이와 같은 오류에 부딪혀 실행함으로써 해결했습니다.
dev.off()
그리고 다시 줄거리를 실행하는 겁니다.아까 그래픽을 좀 내보내서 그래픽 장치가 엉망이 되어서 리셋이 안 된 것 같아요.이것은 나에게 효과가 있었고 ggplot2를 재설치하는 것보다 간단합니다.
gg 플롯 차트와 플롯 차트를 동일한 세션에서 혼합할 때 이러한 현상이 발생한다는 것을 확인했습니다.Paul이 제안한 'dev.off' 솔루션을 사용하면 문제가 해결됩니다.
해결책은 단순히 재설치하는 것입니다.ggplot2. 사용 중인 R 버전과 설치된 버전 사이에 비호환성이 있을 수 있습니다.ggplot2. 또는 설치하는 동안 문제가 발생했을 수 있습니다.ggplot2이전에 문제를 일으켰습니다.
ggplot2를 다시 설치할 필요가 없습니다.
해결책: 이전에 작동하지 않았던 플롯으로 돌아갑니다.아래 콘솔 출력을 예로 들어 보겠습니다.그림 여백(그림을 표시하는 창)이 너무 작아서 쌍(마이너스 내부) 그림을 표시할 수 없습니다.그런 다음 다음 q plot을 작성하려고 했을 때 R은 여전히 이전 오류에 걸려 있었습니다.
pairs(마이너스 내부) plot.new()의 오류 : 그림 여백이 너무 큰 q plot(표본).유형, BAE, 데이터= minus내부, geom="boxplot") .Call.graphics(C_palette2, .Call(C_palette2, NULL)의 오류: 잘못된 그래픽 상태
플롯 창을 확장하고 쌍(마이너스 내부) 플롯을 다시 실행하여 첫 번째 오류를 수정했습니다.그럼 흠, 효과가 있었군요.
쌍(마이너스 내부) q 그림(표본)유형, BAE, 데이터= minus안쪽, 지오엠="상자 그림")
콘솔의 모든 플롯을 지운 다음 플롯 영역이 제가 만들고 있는 것을 수용할 수 있을 정도로 넓도록 함으로써 이 문제를 해결했습니다.
R(메뉴>세션>Restart R 또는 ⌘⇧F10)을 다시 시작하고 코드를 다시 실행하면 문제가 해결되었습니다.
또한 RStudio를 사용하는 경우 쉽게 해결할 수 있는 방법은 플롯 창/영역의 크기를 드래그하여 확장하는 것입니다.기본적으로 현재 플롯 창이 플롯을 표시하는 데 필요한 크기보다 작기 때문에 이 문제가 발생했습니다.
화풀이를 해 보다x11()아니면win.graph()이 문제를 해결할 수 있을 겁니다
언급URL : https://stackoverflow.com/questions/20155581/persistent-invalid-graphics-state-error-when-using-ggplot2
'programing' 카테고리의 다른 글
| jQuery를 사용하여 문자열에서 마지막 문자를 삭제하는 방법? (0) | 2023.10.31 |
|---|---|
| CSS 이전 또는 이후의 SVG 채우기 색상 변경 (0) | 2023.10.26 |
| 포인터 + 1이 4를 추가하는 이유 (0) | 2023.10.26 |
| jQuery.jax()에서 반환된 데이터를 필터링하려면 어떻게 해야 합니까? (0) | 2023.10.26 |
| 예외 가져오기 "IlgalStateException:SaveInstanceState 이후에는 이 작업을 수행할 수 없습니다." (0) | 2023.10.26 |