2012-09-04 5 views
4

나는 g 그래프로 R에서 라인 그래프를 만들고 있는데, 나는 이것을 jpeg로 저장하고 싶다. 그러나 그래프를 더 크게 또는 더 높은 해상도로 만들고 싶습니다. 따라서 그래프를 볼 때 그래프를 확대하면 픽셀 화되지 않습니다.그래프를 ggplot2에 임베드하기

는 여기에 코드입니다 :

library("ggplot2") 

p <- ggplot(df1) 

p <- p + 
    geom_line(aes(time, ee_amt, colour="ee_amt"), size = 2) + 
    geom_point(aes(time, ee_amt, colour="ee_amt"), size = 2) 

jpeg("G:\\Auto Parts\\sample.jpg") 
    print(p) 
dev.off() 
+4

+1 Jebediah Springfield (Simpsons) 참조 용! – mnel

답변

10

사용 ggsave 당신이 원하는 dpi를 지정합니다.

library(ggplot2) 
df <- data.frame(x = 1:10, y = rnorm(10)) 
my_plot <- ggplot(df, aes(x,y)) + geom_point(size = 4) 
ggsave(my_plot, file="sample.jpg", dpi = 600) 
예를 들어
+4

또한 'jpg'가 아닌 다른 형식을 사용하는 것이 좋습니다. 손실 형식이기 때문입니다. 확대/축소가 문제되지 않는 벡터화 된 그래픽을 원하면 'png'또는'svg','pdf' 또는'postscript' (또는'tikz ')를 사용하십시오. – mnel

+0

위대한 추가, @mnel. – Maiasaura

+0

좋습니다, 고마워요. 어떤 이유로 600dpi에서 작동하지 않습니다 (이 오류 메시지는 "grDevices의 오류 :: 장치를 시작할 수 없습니다"). 하지만 300dpi로 바꿨고 정상적으로 작동했습니다. – aesir

4

저장 포스트 스크립트로 플롯, 그리고 ImageMagickconvert 원하는 밀도 JPEG로 변환하는 데 사용 :

$ convert foo.ps -density 300 foo.jpeg 
:

ggsave(my_plot, file="foo.ps") 

그런 다음, 300 dpi의 JPEG 버전을 만들 수

원하는 해상도로 렌더링 할 수있는 작은 파일과 ImageMagick에서 지원하는 비트 맵 형식이 있습니다.

이 웹에 대한 경우, SVG 또는 PDF 형식으로 변환 고려 :

$ convert foo.ps foo.svg 

당신은 아주 쉽게 iframe에 SVG를 포함 할 수 있습니다, 이것은 높은 비해 작은 파일 크기와 부드러운 줌을 용이하게 해상도 비트 맵.

0

png()를 사용하지 않는 것이 좋습니다 : ggsave() 또는 jpeg()가 더 좋은 옵션입니다. png()를 사용하여 직접 해상도를 제어하려면 다음을 사용하십시오.

library("ggplot2") 

p <- ggplot(df1) 

p <- p + 
geom_line(aes(time, ee_amt, colour="ee_amt"), size = 2) + 
geom_point(aes(time, ee_amt, colour="ee_amt"), size = 2) 

W = 1680 
H = 1050 

png("test.png", width = W, height = H) 
print(p) 
graphics.off() 

jpeg()에서도 동일하게 작동합니다.

관련 문제