2016-06-23 4 views
0

분명히 간단한 질문이 있습니다. 어쩌면 라이브러리를 오용하는 것일 수도 있지만 올바른 구문이 무엇인지는 알 수 없습니다.matplotlib 상자 플롯에 x 축 입력

데이터 집합에서 상자 그림을 만들어야합니다. 로그 축척으로 x 축을 넣고 싶지만 plt.xscale('log')을 쓰면 x 축척이 사라집니다.

여기 내 코드입니다 :

import matplotlib.pyplot as plt 

# .. data analysis here ... 

plt.boxplot(values, positions = pos, widths = w) 
plt.xscale('log') 
plt.yscale('log') 
plt.show() 

그리고 결과 이미지는 다음과 같습니다 떨어져 x 축이 표시되지 않는 사실에서, 괜찮

enter image description here

. 이 문제에 대한 간단한 해결책이 있습니까?

감사합니다. 어떤 조언을 크게 주시면 감사하겠습니다!

답변

0

봅니다 plt.autoscale()를 사용하거나 수동으로 x 축에 대한 한계를 설정합니다 :

import matplotlib.pyplot as plt 
import numpy as np 

# fake up some data 
spread = np.random.rand(50) * 100 
center = np.ones(25) * 50 
flier_high = np.random.rand(10) * 100 + 100 
flier_low = np.random.rand(10) * -100 
data = np.concatenate((spread, center, flier_high, flier_low), 0) 
spread = np.random.rand(50) * 100 
center = np.ones(25) * 40 
flier_high = np.random.rand(10) * 100 + 100 
flier_low = np.random.rand(10) * -100 
d2 = np.concatenate((spread, center, flier_high, flier_low), 0) 
data.shape = (-1, 1) 
d2.shape = (-1, 1) 
data = [data, d2, d2[::2, 0]] 

plt.figure() 
plt.boxplot(data) 
plt.xscale('log') 
plt.yscale('log') 
plt.autoscale(True) 
plt.show() 

enter image description here

관련 문제