gpt4 book ai didi

python - PyPlot - 使用选择器选择的高亮点

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:06 25 4
gpt4 key购买 nike

我正在使用 pyplot 绘制时间序列,并希望在选定点后突出显示它(使用 pick_event)。发现类似问题here ,但就是无法理解它。这是我所做工作的一个基本示例:

import matplotlib.pyplot as plt

class MyPlot(object):
def __init__(self, parent=None):
super(self.__class__, self).__init__()

def makePlot(self):
fig = plt.figure('Test', figsize=(10, 8))
ax = plt.subplot(111)
x = range(0, 100, 10)
y = (5,)*10
ax.plot(x, y, '-', color='red')
ax.plot(x, y, 'o', color='blue', picker=5)
plt.connect('pick_event', self.onPick)
plt.show()

def onPick(self, event=None):
this_point = event.artist
x_value = this_point.get_xdata()
y_value = this_point.get_ydata()
ind = event.ind
print 'x:{0}'.format(x_value[ind][0])
print 'y:{0}'.format(y_value[ind][0])

if __name__ == '__main__':
app = MyPlot()
app.makePlot()

选定的点应被标记(例如,将其设为黄色),但当我选择另一个点时,它将重置为蓝色,并且只有新选择的点会突出显示(没有注释,只是颜色变化)。我该怎么做?

最佳答案

您可以定义一个新图(黄色),开始时是空的。单击一个点后,将此图的数据更改为所选点的数据并重新绘制 Canvas 。

import matplotlib.pyplot as plt

class MyPlot(object):

def makePlot(self):
self.fig = plt.figure('Test', figsize=(10, 8))
ax = plt.subplot(111)
x = range(0, 100, 10)
y = (5,)*10
ax.plot(x, y, '-', color='red')
ax.plot(x, y, 'o', color='blue', picker=5)
self.highlight, = ax.plot([], [], 'o', color='yellow')
self.cid = plt.connect('pick_event', self.onPick)
plt.show()

def onPick(self, event=None):
this_point = event.artist
x_value = this_point.get_xdata()
y_value = this_point.get_ydata()
ind = event.ind
self.highlight.set_data(x_value[ind][0],y_value[ind][0])
self.fig.canvas.draw_idle()

if __name__ == '__main__':
app = MyPlot()
app.makePlot()

关于python - PyPlot - 使用选择器选择的高亮点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48171626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com