그리드에 .png를 넣는 방법이 있습니까? 하나의 차트에 4 개의 .png 단일 차트를 표시하고 싶었습니다.표를 그리드에 넣는 방법
답변
는 기본 그래픽에서이 작업을 수행하려면 적어도 세 가지 방법이 있습니다. (내가 좋아하는)
사용
layout()
: 당신이 장치로 분할 된 서브 플롯 것을 인덱스 정수를 포함하는 매트릭스를 전달layout()
와layout(matrix(1:4, ncol = 2)) for(i in 1:4) plot(1:10) layout() # reset
. 이러한 인덱스가 매트릭스에 배치되는 방식에 따라 레이아웃이 제어됩니다. 이 행렬에 의해 2x2 레이아웃이 제공됩니다.
R> matrix(1:4, ncol = 2) [,1] [,2] [1,] 1 3 [2,] 2 4
열은 열로 채 웁니다. 행으로 채우기
matrix()
전화R> matrix(1:4, ncol = 2, byrow = TRUE) [,1] [,2] [1,] 1 2 [2,] 3 4
당신이 장치가보고 원하는대로 × 2 하나는 매트릭스 인덱스를 생성하여 달성 할 수있는 더 복잡한 레이아웃에
플롯과 그 필링 는byrow = TRUE
을 사용합니다. 예를 들어, 장치의 오른쪽에 1 개의 플롯 영역이있는 첫 번째 행, 전체 행을 덮는 단일 플롯 영역 및 세 번째 행 2 플롯 영역에있는 두 번째 행matrix(c(0,1, 2,2, 3,4), ncol = 2, byrow = TRUE)
layout(matrix(c(0,1, 2,2, 3,4), ncol = 2, byrow = TRUE)) for(i in 1:4) plot(1:10) layout(1) # reset
유사한 레이아웃
split.screen()
달성 할 수 있습니다. 아래 3을 참조하십시오.mfrow
또는mfcol
매개 변수를 사용하십시오. 전자는split.screen(c(2,2)) for(i in 1:4) { screen(i) plot(1:10) } close.screen(all = TRUE) # reset
split.screen()
split.screen()
도layout()
같은 매트릭스 입력을 취할 수 사용하는 행을 플롯과 장치 및 열op <- par(mfrow = c(2,2)) for(i in 1:4) plot(1:10) par(op) # reset
세 번째 방법으로, 후자를 채운다.
장치를 분할 한 플롯 영역 수에 따라 플롯의 여백을 줄이거 나 늘려야 할 수 있습니다. 이를 위해 ?par
과 여백을 정의 할 수있는 다양한 방법 (예 : 매개 변수 mar
)을 참조하십시오.
png(file = "foo.png", .....) ## the ..... is where you place options, see ?png
## plotting commands here
dev.off()
예를 들어, 모든 명령을 포장
png("layout.png", height = 600, width = 600, pointsize = 14)
layout(matrix(c(0,1,
2,2,
3,4), ncol = 2, byrow = TRUE))
for(i in 1:4)
plot(1:10)
layout(1) # reset
dev.off()
[내가 위에서 보여준 플롯 그림을 만드는 데 사용 된 것입니다.당신이 ggplot에 익숙하다면]
환상적입니다. 그러나 이미 모든 .png 파일을 개인 .png 파일로 만든 경우이 파일을 표시하는 데 사용할 수있는 동일한 방법입니까? – Amar
아니요. R에 4 개의 플롯 (png)이 생성 된 경우 위에 표시된 옵션 중 하나에서 4 개의 플롯을 생성하는 코드를 래핑하는 것이 좋습니다. 플롯 장치에서 래스터로 PNG를 렌더링하는 것은 품질이 나쁜 방법입니다. –
오, 고마워 .. btw 그냥 내가 왜 이러는 지 설명하고 싶었어. 내 고객이 모두 4, Chart1.png, chart2.png ... 등등을 원한다. 별도의 파일로. 하나의 .png 파일에서 동일한 4 개의 차트. 문제는 차트에 대해 동일한 코드를 다시 실행하기 때문에 전체 프로세스가 크게 느려집니다. 그게 내가 이미 만든 4 .png를 만들고 그냥 처리 속도를 올려서 거기에 표시 할 일의 레이아웃을 사용하고 싶었던 이유입니다. – Amar
는 facet_grid()
당신이 찾고있는 수 있습니다 :
df <- data.frame(x = rnorm(40), y = rnorm(40))
df <- cbind(df, expand.grid(c('A', 'B'), c('C', 'D')) )
head(df)
x y Var1 Var2
1 -1.27990165 1.1697183 A C
2 -0.65083905 0.4743215 B C
3 0.23181562 0.5092162 A D
4 -0.01370950 -0.1704988 B D
5 -1.20182791 -0.3525845 A C
6 0.04877524 0.8801793 B C
library("ggplot2")
g <- ggplot(df) +
geom_point(aes(x = x, y = y)) +
facet_grid(Var1 ~ Var2)
ggsave("plot.png", g)
다른 사람이 아마 좋은 생각이 아니다 말했듯이
하지만
library(gridExtra)
library(png)
img <- rasterGrob(readPNG(system.file("img", "Rlogo.png", package="png")),
width=unit(1,"npc"), height=unit(1,"npc"))
grid.arrange(img, img, img, img, ncol=2)
은 장치에 2x2 png 파일을 표시합니다.
- 1. 플렉스 : 파일에서 개체를 데이터 그리드에 넣는 방법? 먼저
- 2. SWT에서 열별로 표를 정렬하는 방법
- 3. Axapta에서 그리드에 'bind'하는 방법?
- 4. NSWindow를 그리드에 스냅하는 방법
- 5. 작업 표를 도킹하는 방법
- 6. vb/C# .net으로 XML 파일을 읽는 방법 데이터 표를 사용하여 그리드에 표시 하시겠습니까?
- 7. 표를
- 8. Silverlight : 그리드에 항목을 표시하는 방법?
- 9. GXT 그리드에 행을 추가하는 방법
- 10. uibinder 그리드에 설정하는 방법 텍스트
- 11. SqlDataReader 개체에서 WPF 데이터 표를 바인딩합니다.
- 12. 검도 그리드에
- 13. HTML에 PDF 표를 표시하는 방법
- 14. 경고에 표를 표시하는 방법 iOS
- 15. 내부에 눈금이있는 표를 구현하는 방법?
- 16. 아래와 같이 표를 만드는 방법
- 17. 배열을 파일에 넣는 방법?
- 18. Webview에 텍스트를 넣는 방법?
- 19. Iphone에서지도에 단추를 넣는 방법
- 20. DropDownListFor에 기본값을 넣는 방법?
- 21. 집합에 메서드를 넣는 방법?
- 22. 방정식을 행렬에 넣는 방법?
- 23. 기본 설정을보기에 넣는 방법?
- 24. HorizontalScrollView에 이미지를 넣는 방법?
- 25. 위젯을 페이지에 넣는 방법
- 26. apk에 비디오를 넣는 방법?
- 27. ContentPresenter를 툴바에 넣는 방법
- 28. headerview를 gridview에 넣는 방법
- 29. 뷰를 번들에 넣는 방법
- 30. 번들에 보석을 넣는 방법
당신은'layout'을 보았습니까? –
귀하의 질문은 모호합니다. R 그래픽 장치에 4 개의 PNG 파일 (예 : 이미 디스크에있는 이미지 파일)을 표시 하시겠습니까? 아니면 하나의 장치에 4 개의 그림을 그려서 PNG로 내 보냅니 까? –
죄송합니다, 설명이 명확하지 않은 경우 .. 이미 디스크에 4 장 .png가 있는데 표시하고 싶었습니다. – Amar