2016-04-29 3 views
0

xIch habe zwei Felder, die ich vergleiche. Beide sind Nominale mit nur Einsen und Nullen. Männer und Frauen, und Standard und kein Standard (plus viel mehr Daten in einem ähnlichen Format). Wenn Sie es in ein Streudiagramm einfügen, erhalten Sie nur vier Punkte, weil natürlich all diese Szenarien passieren, aber die Frage ist, wie oft es in jedem Fall passiert. Es wäre erstaunlich, wenn ich es sehen könnte, indem ich es auf die Seite kippe und die Häufigkeit sehe, wie oft jeder Punkt auf einen dieser vier Punkte trifft.Ist es möglich, ein 2D-Streudiagramm in 3d zu verwandeln, indem die Frequenz in Matplotlib eingeschlossen wird?

zum Beispiel:

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

Ich habe den Code:

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

Aber ich habe keine Ahnung, was in der z-Achse zu setzen, damit dies geschieht. Jede Hilfe wäre toll.

+0

Können Sie einige Beispieldaten bereitstellen? –

Antwort

0

Es klingt wie Sie nach np.histogram2d suchen, die eine gute Methode zur Bestimmung der Häufigkeit (im Sinne der Anzahl der Vorkommen) für 2-dimensionale Daten ist. Sie könnten versuchen, etwas wie:

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)) 

Es klingt auch wie Sie die Frequenz visualisieren möchten. Um dies zu tun, können Sie ein 3D-Balkendiagramm (bar3d) verwenden. Überprüfen Sie diese matplotlib example code.

Verwandte Themen