2011-07-27 2 views
3

큰 그림 ggplot을 PDF로 인쇄하면 RSession 메모리가 풍선 모양이됩니다. 72 메가 바이트 주위에있는 ggplot2 개체가 있습니다. 내 RSession은 PDF로 인쇄 할 때 2 기가 이상으로 커집니다. 예상 되나요? 성능을 최적화 할 수있는 방법이 있습니까? 결과 PDF가 ~ 25meg 크기이며 외부 프로그램을 사용하여 축소해야합니다 (시각적 손실없이 50kb!). 저품질 그래픽을 사용하여 PDF로 인쇄하는 방법이 있습니까? 아니면 내가 고려하지 않은 인쇄 또는 ggplot 매개 변수?ggplot2 - 플롯 풍선 메모리 인쇄

답변

7

큰 데이터 세트의 경우 ggplot을 합치기 전에 데이터를 사전 처리하는 것이 유용하다는 것을 알고 있습니다 (ggplot이 동일한 계산을 제공하더라도).

ggplot

매우 일반되어야한다 : 그것은 어떤 통계를 예측하거나 나중에 추가 할 기하 구조 할 수없는, 그래서 (이 일을 최적화하는 것은 매우 어렵다 분할 신청 - 통합 메모리 intermediat 폭발로 이어질 수있는 전략을 요구 사항). OTOH, 당신은 당신이 원하는 것을 알고 있으며 그에 따라 미리 계산할 수 있습니다.

큰 pdf는 너무 많은 오버 플로팅이 있거나 너무 작아서 볼 수없는 개체를 생성 함을 나타냅니다. 두 경우 모두 적절한 요약 통계 (예 : 산점도 대신에 헥스 빈 또는 박스 플롯)를 적용하여 많은 효과를 얻을 수 있습니다.

내가하는 일에 대한 세부 정보 없이는 더 이상 알 수 없다고 생각합니다. 따라서 최소한의 예제를 만들고 /하거나 제작중인 압축 된 그림을 업로드하십시오.

+0

당신이 맞습니다.이 경우 나는 오버 플로팅과 볼 수있는 너무 작은 물체를 가지고 있습니다. 감사! – SFun28

3

질문의 두 번째 부분을 해결하기 위해 R은 PDF를 최적화하려고하지 않습니다. 당신이 많은 점수를 오버 플로팅하고 있다면, 이것은 어리석은 행동을 초래합니다. qpdf를 사용하여 PDF를 사후 처리 할 수 ​​있습니다.

첫 번째 질문에 일면적으로 대처할 때 중형 데이터 세트의 플롯은 많은 메모리를 차지하는 것처럼 보이지만 이는 단지 나의 경험 일뿐입니다. 다른 사람들은 그것이 사실인지 아닌지에 관해서 왜 더 많은 사실에 관해 더 많은 의견을 가질 수 있습니다.

0

png와 같은 비트 맵 형식으로 저장하면 파일 크기가 상당히 줄어들 수 있습니다. 이것은 최종 이미지의 특정 용도에만 적합하며 특히 pdf가 할 수있는 범위까지 확대 할 수는 없습니다. 그러나 최종 이미지 크기가 알려진 경우 유용한 방법이 될 수 있습니다.

+0

내 지식으로는 렌더링 시간을 줄이지는 못하겠습니까? 또한 PDF 후 처리 기능을 사용하면 벡터화를 유지하면서 유사한 파일 크기로 이동할 수 있습니다. –

+0

True는 렌더링 시간을 줄이지 않습니다. 나는 PDF 후 처리를 시도하지 않았지만 유용하게 들린다. png를 사용하면 내 필요를 충족시킬 수 있습니다. – Aaron

+0

그리고 이것이 모두 하나의 필요성이라면 PNG (또는 다른 비트 맵 형식)로 바로 이동하는 것이 더 적은 단계입니다. – Aaron