2016-11-07 4 views
0

ich diesen Code erhalten haben:Aktualisieren von Farbe in Matplotlib

import matplotlib 
import matplotlib.pyplot as plt 
from matplotlib.widgets import Slider 

fig = plt.figure(figsize=(12, 6)) 
ax = fig.add_subplot(111) 
z = plt.scatter([3,5], [1.11212,1.11215]) 

axcolor = '#ffffff' 
ax_x_pos = plt.axes([0.086, 0.198, 0.828, 0.022], axisbg=axcolor) 
x_pos = Slider(ax_x_pos, '', 0, 100, valfmt='%d', 
      valinit=100, color='green') 

x_pos.valtext.set_visible(False) 

def updateX(val): 
    global z 
    z.remove() 
    plt.scatter([3,5], [1.11212,1.11215]) 
    fig.canvas.draw_idle() 

cid = x_pos.on_changed(updateX) 
plt.show() 

Wie werde ich alles nach Entfernen "Z" param ziehen kann? (Ich habe leere Leinwand genommen (nach "on_changed()") alles.)

ich meine. Ich brauche nur etwas Farbe zu zeichnen und dann durch eine andere Farbe zu ersetzen.

P.S. Ich werde für jeden Hinweis zu schätzen wissen.

Antwort

0

Sie definieren eine Achse, ax so Plots sollte darauf gezeichnet werden (ax.scatter anstelle von plt.scatter). In der Aktualisierung verwenden Sie auch nicht den Schieberegler val, um die von Ihnen gezeichneten Werte zu ändern.

Ein Beispiel, welches die Handlung verändert und neu zeichnet, wie folgt, ist

import matplotlib 
import matplotlib.pyplot as plt 
from matplotlib.widgets import Slider 

fig = plt.figure(figsize=(12, 6)) 
ax = fig.add_subplot(111) 
plt.subplots_adjust(bottom=0.25) 
z = ax.scatter([3,5], [1.11212,1.11215]) 

axcolor = '#ffffff' 
ax_x_pos = plt.axes([0.086, 0.1, 0.828, 0.022], axisbg=axcolor) 
x_pos = Slider(ax_x_pos, '', 0, 100, valfmt='%d', 
      valinit=100, color='green') 

x_pos.valtext.set_visible(False) 

def updateX(val): 
    global z 
    z.remove() 
    z = ax.scatter([3*val/100.,5], [1.11212,1.11215*val/100.]) 
    fig.canvas.draw_idle() 

cid = x_pos.on_changed(updateX) 
plt.show() 
Verwandte Themen