2015-10-05 20 views
5

Vì vậy, tôi có một âm mưu phân tán đơn giản, với sự kiện bộ chọn. Tôi muốn thay đổi màu của điểm dữ liệu mà tôi nhấp bằng chuột. Mã tôi sẽ thay đổi màu của toàn bộ mảng. Làm thế nào tôi có thể thay đổi một điểm cụ thể? Cảm ơnPython, Matplotlib, Âm mưu phân tán, Thay đổi màu sắc trên điểm được nhấp

import sys 
import numpy as np 
import matplotlib.pyplot as plt  
testData = np.array([[0,0], [0.1, 0], [0, 0.3], [-0.4, 0], [0, -0.5]]) 
    fig, ax = plt.subplots() 
    sctPlot, = ax.plot(testData[:,0], testData[:,1], "o", picker = 5) 
    plt.grid(True) 
    plt.axis([-0.5, 0.5, -0.5, 0.5]) 

def on_pick(event): 
    artist = event.artist 
    artist.set_color(np.random.random(3)) 
    print "click!" 
    fig.canvas.draw() 

fig.canvas.mpl_connect('pick_event', on_pick) 

Trả lời

5
import sys 
import numpy as np 
import matplotlib.pyplot as plt 

testData = np.array([[0,0], [0.1, 0], [0, 0.3], [-0.4, 0], [0, -0.5]]) 
fig, ax = plt.subplots() 
coll = ax.scatter(testData[:,0], testData[:,1], color=["blue"]*len(testData), picker = 5, s=[50]*len(testData)) 
plt.grid(True) 
plt.axis([-0.5, 0.5, -0.5, 0.5]) 

def on_pick(event): 
    print testData[event.ind], "clicked" 
    coll._facecolors[event.ind,:] = (1, 0, 0, 1) 
    coll._edgecolors[event.ind,:] = (1, 0, 0, 1) 
    fig.canvas.draw() 

fig.canvas.mpl_connect('pick_event', on_pick) 
plt.show() 
Các vấn đề liên quan