2012-09-19 7 views
2

나는 태양의 천문학적 인 상징을 PyX를 사용하여 그래프에 표시하려했지만 성공하지 못했습니다. (I이 기호는 mathabx 라텍스 패키지에 알고 있기 때문에)PyX에서 천문 기호 " sun"을 수행하는 방법

from pyx import * 
from pylab import * 
x=arange(1,5,0.1) 
y=exp(-(x-3.0)**2/(2.0*0.5**2))/sqrt(2.0*pi*0.5**2) 
###################### 
g=graph.graphxy(width=8,y=graph.axis.linear(title=r"Fraction of DM halos"),x=graph.axis.linear(min=1,title=r"Mass ($10^{11}M_{\sun}$)")) 
g.plot(graph.data.values(x=x,y=y),styles=[graph.style.histogram()]) 
g.writeEPSfile("testhistogram") 

내가 text.preamble("\usepackage{mathabx}") 다음 text.set(mode="latex")를 추가했지만,이 작동하지 않습니다 내가 가진 코드는 다음과 같다. 어떤 아이디어?

답변

3

여기 pyx가 없지만 단순히 유니 코드 문자열을 사용하고 원하는 기호에 대한 유니 코드 문자를 전달하려고 했습니까?

태양 기호의 문자는 그냥이 일을 시도 할 수 유니 코드 번호 9737 (소수점, 0x2609 16 진수), 그래서이 있습니다

g=graph.graphxy(width=8,y=graph.axis.linear(title=r"Fraction of DM halos"), 
    x=graph.axis.linear(min=1, 
     title=u"Mass ($10^{11}M_\u2609$)")) 
+0

그것은 :-(작동하지 않는 오류는 다음과 같습니다. 'UnicodeEncodeError : 'ascii'코덱은 문자 'u2609'를 177 위치에 인코딩 할 수 없습니다 : 서수가 범위가 아닙니다 (128) '. 이것이 유일한 방법입니까? 저는 모든 유니 코드를 외워야 할 것 같습니다. characters ... –

+0

텍스트를 이해하기 위해 http://www.joelonsoftware.com/articles/Unicode.html을 읽어보십시오. 진지하게 - "유니 코드"는 괴물이 아닙니다. 'u ''perfixing을 놓쳤다. 물론 모든 유니 코드 포인트를 기억하는 사람은 아무도 없다 : 앱이나 테이블 f를 사용한다. 또는, 그저 파이썬 콘솔에서'>>>와 같은 것을 사용하여 범위 (32, 20000)에 인쇄하십시오 : print u "% d - % s", % (i, unichr (i)), – jsbueno

+0

다른 한편으로는'''접두어'''를 쓰면, 사용중인 라이브러리가 텍스트를 ASCII로만 처리하고 있음을 의미합니다. 라이브러리에있는 버그라는 것을 이해하기 위해 위에 링크 된 기사를 읽고 문제점을보고하십시오. 그 동안 다른 사람이 당신에게 다른 답변을 해줄 때까지 기다리십시오. 컴퓨터를 다루는 방법에 관한 표준을 만드는 사람들은 다른 사람들이이 일을해서는 안되기 때문에 천문학적 심볼을 추가하는 것에 대해 걱정했습니다. – jsbueno