4

次のようなかなり小さなヒストグラムを作成できました。

いつか綺麗になる

次のコードで画像を生成できました。

    import numpy as np
    import matplotlib.pyplot as plt

    plt.figure()  
    plt.axis([0, 6000, 0, 45000])  

    data['column'][data.value == 0].hist(bins=200, label='A') 
    data['column2'][data.value == 1].hist(bins=200, label='B')

    plt.title('A Histogram')  
    plt.xlabel('x-axis')  
    plt.ylabel('y-axis')  
    plt.legend()  

    return plt

これはすべて問題ありませんが、ビンの長さが等しくありません。ビンを同じ長さにすることができた唯一の方法は、次のようなことです。

 bins=[0,100,200,300,400,.......)

これはまったくきれいではありません。

私は少しググって、ここを見回しました。同様の質問に対する最も人気のある回答は、私が一生働くことはできないという一見優れた回答を提案するこの男です.

ご協力いただきありがとうございます!

4

1 に答える 1

7

データ構造と関数の呼び出し方法に少し混乱していますhist。ただし、matplotib を使用していると思われるため、hist関数に対して同じビニング範囲を定義する必要があります。必要なビンの数ではなく、ビンの境界を含む配列を渡すと、うまく機能します。

import numpy as np
import matplotlib.pyplot as plt

plt.figure()  
plt.axis([0, 6000, 0, 45000])  

# From your example I am assuming that the maximum value is 6000
binBoundaries = np.linspace(0,6000,201)

data['column'][data.value == 0].hist(bins=binBoundaries, label='A') 
data['column2'][data.value == 1].hist(bins=binBoundaries, label='B')

plt.title('A Histogram')  
plt.xlabel('x-axis')  
plt.ylabel('y-axis')  
plt.legend()

これはうまくいくはずです。

それが役立つかどうか教えてください。

于 2015-01-23T01:53:57.613 に答える