2016-04-29 4 views
0

x私は2つのフィールドを比較しています。どちらも名目で、1と0だけです。男性と女性、デフォルト、デフォルトなし(さらに多くのデータを同様のフォーマットで表示)それを散布図に入れると、もちろんすべてのシナリオが発生するので、4つの点しか得られませんが、それぞれの場合に何回起こるのかという疑問があります。私はそれをその側にひっくり返して見ることができ、各ドットがこれらの4つのポイントの1つに何回ぶつかるかの頻度を見ることができれば素晴らしいだろう。例えばmatplotlibに周波数を含めることで、2次元散布図を3dにすることはできますか?

x = [1,0,0,0,...1,1,0,1] 
y = [0,1,1,0,...1,0,1,0] 

私はコードを持っている:

def scatterPlot3dFields(): 
    fig = plt.figure() 
    ax = fig.add_subplot(111, projection='3d') 
    ax.scatter(x, y, ???) 
    plt.show() 

をしかし、私は何これを実現するために、z軸に置くためには考えています。どんな助けも素晴らしいだろう。

+0

サンプルデータを提供できますか? –

答えて

0

np.histogram2dを探しているようですが、これは2次元データの頻度(発生数の意味)を決定する優れた方法です。

import numpy as np 

# data of 1s and 0s 
n_points = 100 
x = np.random.randint(2, size=n_points) # ([1, 0, 1, ... , 0, 0, 1]) 
y = np.random.randint(2, size=n_points) # ([0, 1, 1, ... , 1, 0, 1]) 

H, xedges, yedges = np.histogram2d(x, y, bins=2) 
# H = frequency from the four points (0, 0), (0,1), (1,0), and (1,1) 
# H = ([21, 26], [32, 21]]) for example (must sum to n_points (100)) 

周波数を視覚化したいと思うようにも聞こえます。これを行うには、3Dバーグラフ(bar3d)を使用します。このmatplotlib example codeをチェックしてください。

関連する問題