Python、Matplotlib、散点图、更改单击点的颜色
我有一个带有选择器事件的简单散点图。Python、Matplotlib、散点图、更改单击点的颜色,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个带有选择器事件的简单散点图。 我想更改我用鼠标单击的数据点的颜色。 我的代码将更改整个数组的颜色。 我怎么能只改变一点 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.pl
我想更改我用鼠标单击的数据点的颜色。
我的代码将更改整个数组的颜色。
我怎么能只改变一点
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)
是否可以同时选择多个标记来检索它们后面的数据?如在散点图上绘制矩形,并对矩形内的所有标记进行处理。user337有一个套索功能:
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()