2016-07-14 24 views
0

Hey ich versuche, ein Streudiagramm mit einem Schieberegler zu erstellen, der das Diagramm aktualisiert, während ich über gleiten. Das ist bisher mein Code. Es zeichnet ein Streudiagramm und einen Schieberegler, aber wenn ich es bewege, passiert nichts. Ich vermute, dass das Problem mit dem .set_ydata Bit ist, aber ich kann nicht finden, wie man es sonst im Internet macht.Scatter Plot mit einem Schieberegler in Python

import numpy as np 
from matplotlib.widgets import Slider 
from pylab import plot, show, figure, scatter, axes, draw 

fig = figure() 
ax = fig.add_subplot(111) 

x, y = np.random.rand(2,100) 
scat = scatter(x,y) 

axcolor = 'lightgoldenrodyellow' 
axamp = axes([0.2, 0.01, 0.65, 0.03], axisbg=axcolor) 

scorr = Slider(axamp, 'corr', -2,2, valinit=1) 

def update(val): 
    corr = scorr.val 

    for i in range(len(x)): 
     x[i]=x[i]+corr*np.random.randn() 

    for i in range(len(y)): 
     y[i]=y[i]+corr*np.random.randn() 

    scat.set_xdata(x) 
    scat.set_ydata(y) 
    draw() 

scorr.on_changed(update) 

show(scat) 

Dies ist nur ein Testskript in Fairness. Ich muss dasselbe mit einem viel komplizierteren Skript machen, aber mir wurde klar, dass es einfacher wäre, es an einem einfacheren Problem auszuprobieren. Ich interessiere mich wirklich nur für scat.set_ydata und was dort stattdessen setzen, damit es funktioniert.

Vielen Dank im Voraus.

Antwort

0

Sie müssen set_offsets und set_array anstatt verwenden:

# make sure you get the right dimensions and direction of arrays here 
xx = np.vstack ((x, y)) 
scat.set_offsets (xx.T) 

# set colors 
scat.set_array (y) 

Wahrscheinlich Duplikat von: How to animate a scatter plot?

+0

es funktionierte perfekt. ich danke dir sehr :) –