2010-04-23 5 views
3

matplotlib의 분산 플롯으로 로그 눈금에 다음 숫자를 플롯하려고합니다. x 축과 y 축의 양 모두 매우 다른 스케일을 가지며 변수 중 하나는 거대한 동적 범위 (대략 0-100 만)를가집니다. 다른 변수는 거의 0과 2 사이입니다. 둘 다 로그 스케일로. python의 matplotlib에서 logscale에 플로팅 문제가 발생했습니다.

나는 두 변수의 값의 일부를 들어, 다음을 시도 :

fig = plt.figure(figsize=(8, 8)) 
ax = fig.add_subplot(1, 1, 1) 
ax.set_yscale('log') 
ax.set_xscale('log') 
plt.scatter([1.341, 0.1034, 0.6076, 1.4278, 0.0374], 
     [0.37, 0.12, 0.22, 0.4, 0.08]) 

의 x 축이 확장 로그 표시하지만 포인트는 표시되지 않습니다 - 두 포인트가 나타납니다. 이 문제를 어떻게 해결할 수 있습니까? 또한이 로그 스케일을 사각형 축에 표시하려면 어떻게해야합니까? 두 변수 간의 상관 관계가 산점도로 해석 될 수 있도록하려면 어떻게해야합니까?

감사합니다.

답변

3

나는 그 두 점만 얻는 이유를 알지 못합니다. 이 경우 수동으로 한계를 조정하여 모든 포인트가 맞는지 확인할 수 있습니다. 나는 달렸다 :

import matplotlib.pyplot as plt 

fig = plt.figure(figsize=(8, 8)) # You were missing the = 
ax = fig.add_subplot(1, 1, 1) 
ax.set_yscale('log') 
ax.set_xscale('log') 
plt.scatter([1.341, 0.1034, 0.6076, 1.4278, 0.0374], 
     [0.37, 0.12, 0.22, 0.4, 0.08]) 
plt.xlim(0.01, 10) # Fix the x limits to fit all the points 
plt.show() 

내가 두 변수 사이의 상관 관계가 산란에서 해석 할 수 있도록 는 "또한, 나는이 로그 스케일을 만들 수있는 방법, 사각 축에 표시되는 것을 이해 이해 확실하지 않다 음모?"을 의미합니다. 아마도 다른 사람이 이해할 것인가, 아니면 분명히 명확히 할 수 있을까요? 그것이 진정한 산포도의 모든 유연성을하지 않습니다하지만 당신은 또한 단지 할 수있는

+0

사각형 축은 단지 x와 y의 두 배율을 의미합니다. 이는 분산 형 플롯을 만드는 데 일반적입니다. x 축이 y보다 "길다"는 것은 원하지 않습니다. 그러면 플롯이 사각형이 아닌 직사각형이됩니다 ... 나는 로그 축척 축에 대해 동일한 것을 원합니다. 말이 돼? 감사. – user248237dfsf

+0

'plt.ylim (0.01, 10)'과 같은 x-limits와 같은 y- 제한을 (또는 자동으로) 설정할 수 있습니다. 이것을'figsize = (8, 8) '과 함께 의도 한 효과를 얻어야합니다. –

2

,

plt.loglog([1.341, 0.1034, 0.6076, 1.4278, 0.0374], 
        [0.37, 0.12, 0.22, 0.4, 0.08], 'o') 

이, 당신은 제대로 조정 축으로 원하는 플롯을 생성합니다.