2013-10-14 4 views
0

R 7.0.1이 설치된 Windows 7에서 xyplot의 PNG 출력에 유니 코드 문자를 포함하고 싶습니다. 예 : "이 장치에 사용할 수있는 메트릭 정보가 없습니다"R : xyplot 용 png 출력의 유니 코드

## output to windows() works fine 
xyplot(CD4 ~ obstime, groups=aids$patient, data=aids, type="b", ylab=expression(sqrt("CD4/µl"))) 

## output to PNG does not 
png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800) 
xyplot(CD4 ~ obstime, groups=aids$patient, data=aids, type="b", ylab=expression(sqrt("CD4/µl"))) 
dev.off() 

나는 오류 (ylab의 표현의 μ주의).

plot (1, main = "μ")을 사용하면 windows() 출력에서는 μ를 인쇄하지만 png() 출력에서는 μ를 인쇄하지 않으므로 유니 코드 및 png() 조용히 생략 됨). 그러나 CairoPNG를 사용하면이 문제가 해결되지 않습니다. plot()에 대해 μ를 인쇄하지만 xyplot()에 대한 오류가 남아 있습니다 (xyplot도 카이로의 pointsize = 값을 무시하는 것 같습니다).

+0

"유니 코드"문자가 지정되지 않았습니다. 그냥 평범한 음모. 저 플롯의 생산은 최소한의 데이터로도 기본 png() 장치로 Mac에서 오랜 시간이 걸립니다. –

+0

ylab에 유니 코드 μ가 있습니다. 계산 시간과 관련하여 다음과 같이 보조 데이터 집합을 하위 집합으로 지정할 수 있습니다. 보조기구를 보조기구 [1:50]로 대체하고 $ 환자에게 보조기구 $ [1 : 50] [보조금 = T]을 보조합니다. res = 800을 더 낮은 값으로 변경하여 PNG 생성 속도를 더욱 높일 수 있습니다. 해상도 = 100. 축 레이블을 사용하여 문제를 재현하려면 최소한의 데이터를 가진 플롯으로 충분해야합니다. 여기서는 단순화를 위해 전체 데이터 세트를 사용했습니다. res 매개 변수는 Cairo를 사용하는 모든 솔루션에서 중요 할 수 있습니다. 더 높은 해상도를 위해 글꼴을 확대 할 필요가 있기 때문입니다. –

답변

1

보십시오이 (사용 plotmath 발현 해석) :

png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800) 
xyplot(1 ~ 1, type="b", ylab=expression(sqrt(CD4/µ*l))) 
dev.off() 

또는 :

png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800) 
xyplot(1 ~ 1, type="b", ylab=expression(sqrt(CD4/mu*l))) 
dev.off() 

(이 중 하나는 함께했던 무엇이든 할 수있는 PNG()을 얻는 것보다 훨씬 더 빨리 내 장치에서 있었다 문자 버전)

+0

고마워, 두 번째 해결책은 나를 위해 일했다 (첫 번째 이유는 무엇이든). –

+0

첫 번째 것은 그래픽 글꼴을 공통적으로 사용하는 것에 달려 있습니다. 두 번째는 모든 R 설치가 공유해야하는 Symbol 글꼴을 사용하는 것입니다. 자세한 내용은? plotmath 세부 정보 섹션을 참조하십시오. –