2013-10-08 4 views
2

세 번째 변수에 따라 음영 처리 된 점이있는 산점도가 있습니다. 여기Matplotlib 제 3의 변수/대칭 로그 Colorscale의 함수로 사용한 스 캐터 플롯/색상

TypeError: array cannot be safely cast to required type

미니 예 : SymLogNorm

불행히도 나는 다음과 같은 오류가 발생합니다 : API에서 설명 된 바와 같이 나는 나의 컬러 맵에 대한 대칭 로그 스케일을 사용하고 싶습니다. matplotlib 1.3.0을 사용하고 있습니다.

# loading modules 
import matplotlib as mpl 
import matplotlib.pyplot as plt 

# defining variables 
x=[0,1,2,3] 
y=[0,1,2,3] 
c=[-1000,-100,100,1000] 

# making scatterplot 

plt.scatter(x, y, c=c, norm=mpl.colors.SymLogNorm(linthresh=10)) 

대칭 로그 칼라 맵이 없으면 플롯이 올바르게 작동합니다.

see here

plt.scatter(x, y, c=c) 

는 당신의 도움을 주셔서 감사합니다.

+1

어떤 matplotlib 버전을 사용하고 있습니까? 귀하의 "깨진"예제는 나를 위해 1.3.0 작동합니다. –

+0

1.3.0을 사용하고 있습니다. 그래서 왜 작동하지 않는지 나는 이해하지 못한다. – Chris

+0

위의 예를 사용해 보셨습니까? –

답변

2

SymLogNorm에 대한 설명서는 명확하지 않으므로이 답변에서 내가 말하는 모든 것이 정확하다고 확신하지 못합니다. vminvmax 인수 당신의 생각 데이터의 범위를 결정하는 데 사용되어야 보인다 예 :

# loading modules 
import matplotlib as mpl 
import matplotlib.pyplot as plt 

# defining variables 
x=[0,1,2,3] 
y=[0,1,2,3] 
c=[-1000,-100,100,1000] 

# making scatterplot 
plt.scatter(x, y, c=c, s=100, norm=mpl.colors.SymLogNorm(linthresh=10, vmin=-1e3, vmax=1e3)) 
plt.colorbar(ticks=c) 

enter image description here

년 Colorbar 진드기는 다음의 크기를 조절할 로그되는 것을 알고하지 않을 수 있습니다하지만 난이 생각 당신이 목표로 한 효과입니다.

+0

도움을 많이 주셔서 감사합니다! 사실 SymLogNorm을 작동시키기 위해서는'vmin'과'vmax '가 필요합니다. 문서의 어딘가에 써야합니다. – Chris

+0

또는 오류 메시지에서 더 좋을 것입니다 : P – Greg

관련 문제