2016-08-10 20 views
1

対数y軸の2D散布図に5点(x、y)をプロットしようとしています。プロットが生成されますが、y軸の範囲はうまく選択されないので、1つの点だけが表示されます。最初のポイント(0.38、0.005)を削除すると、問題はなくなります。散布図の対数軸の範囲がmatplotlib.pyplotによって適切に設定されていません

これはmatplotlibのバグですか?

誰かがこれを再生できますか? y軸の範囲はここにある10^1

2^10 である enter image description here

注:ここ

import numpy as np 
import matplotlib.pyplot as plt 

%matplotlib inline 
emissions_abs_pts = np.array([ 
    [0.38, 0.005], # without this point it scales appropriately 
    [0.42, 0.05], 
    [0.67, 0.5], 
    [0.96, 5.0], 
    [1.0, 50.0] 
]) 
fig, ax = plt.subplots(1, 1) 
ax.scatter(emissions_abs_pts[:,0], emissions_abs_pts[:,1]) 
ax.set_yscale('log') 

プロットが含まれているすべての5つのポイントを持つように見えるものです最初の点がコメントアウトされたプロット: enter image description here

私はを使用していますにPython 2.7を実行しているjupiterノートブックがあります。

答えて

1

編集:同じスケーリングエラーが発生しました。

は、それが動作するように軸を強制的にあなたのコード

ax.set_ylim([0.001, 100]) 

の終わりにこれを追加します。

ジュピターなのかもしれませんか?
コードをコマンドラインからスクリプトとして実行したとき(「インライン」にならないように変更)、強制的に軸を調整する必要はありません。

関連する問題