2011-12-01 4 views
6

6 개의 다른 기호를 사용하여 점을 그리는 분산 형 그림이 있습니다. 예를 들어, 아래의 코드는 아래 방향 삼각형 기호로 나타내는 점 :막대 그래프의 레이블에서 차트 외부에 matplotlib 분산 마커를 사용해야합니다.

my_axis.scatter([x], [y], marker='v') 

각 기호는 오브젝트의 다른 클래스를 나타낸다. 분산 형 플롯에 사용 된 기호를 다른 차트, 즉 분산 형 플롯의 각 클러스터에있는 각 클래스의 비율을 설명하는 막대 그래프로 참조해야합니다.

막대 그래프의 레이블에 분산 형 플롯 마커에 사용되는 기호를 사용하려면 어떻게해야합니까? 아래 이미지에서 볼 수 있듯이 각 막대 아래의 레이블은 차트의 마커와 일치해야하지만 분산 마스코트의 컨텍스트 외부에서 마커를 호출하는 방법을 모르기 때문에 표시되지 않습니다. 대신 마커의 코드 문자 만 표시합니다 (예 : 실제 삼각형 대신 v).

왜곡 된 비율의 백분율이 모두 겹친다는 사실을 무시하십시오. 이는 제가 고칠 문제입니다.

어딘가에있을 수있는 UTF-8 기호 인 경우 수동으로 막대 그래프 범례에 기호를 추가해도 문제가 없지만 각 마커가 될 수있는 문자에 대한 정확한 사양을 찾을 수 없었습니다.

.scatter() 대신 리터럴 UTF-8 문자를 사용하여 .text()를 사용하고 있지만 fontproperties를 사용하여 유니 코드 글꼴을 선택하더라도 많은 기호가 렌더링되지 않습니다 (사각형으로 표시) 그래서 나는 그 접근법에 붙어있다.

도움 주셔서 감사합니다. 그것은 유니 코드/LaTeX의 텍스트를 사용하여 모양

scatter plot and bar graphs

답변

3

Latex을 사용하는 것은 쉬운 해결책입니다.

from matplotlib import rc 
rc('text', usetex=True) 
plt.xticks(ind+width/2., ("$\lozenge$", "$\square$", "$\plus$", "o", "$\bigtriangledown$")) 

그리고 당신은 기호의 이름을 알아내는 데 도움이 필요한 경우, this가 원하는 기호를 그릴하고 라텍스 이름 출력 의지 할 수있는 좋은 작은 웹 사이트는 예를 들면 다음과 같습니다.

+0

사실 그것은 환상적인 유니 코드 도구입니다. 모두 확인해보십시오! 나는 마커를위한 유니 코드 텍스트를 가지고 갈 것이며, 문자 그대로의 심볼 인 LaTeX을 사용하지 않을 것이다. – mrjf

+0

기꺼이 도와 드리겠습니다. 나는 내가 발기인 (나는 약속하지 않는다) 인 것 같은 느낌이 든다. 그러나 Detexify는 전화 앱을 가지고있다. 그것은 실제로 약간 재미있다. – cosmosis

관련 문제