2016-06-23 7 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軸が表示されないという事実から、okです

enter image description here

。この問題を解決する簡単な方法はありますか?

ありがとうございました!どんなアドバイスも大歓迎です!

答えて

0

手動x軸用plt.autoscale()又は設定限界値を使用してみてください:

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

関連する問題