Friday, October 24, 2025
HomeLanguagesmatplotlib.lines.VertexSelector class in Python

matplotlib.lines.VertexSelector class in Python

The matplotlib.lines.VertexSelector class belongs to the matplotlib.lines module. The matplotlib.lines module contains all the 2D line class that can be drawn with a variety of line styles, markers, and colors. matplotlib.lines.VertexSelector class is used to for managing the callbacks that maintain a list of selected vertices for matplotlib.lines.Line2D. The process_selected() function gets overridden by the derived classes for the picks.

Syntax: class matplotlib.lines.VertexSelector(line)
Parameter: 

  • lines: These represent the lines that are defined for the plotting. 

Methods of the class: 

  1. onpick(self, event): The selected set of indices gets updated when the line is picked using this method.
  2. process_selected(self, ind, xs, ys): By default it does the implementation of “do nothing” of the process_selected() method. The ‘ind’ represents the indices of the selected vertices whereas ‘xs’ and ‘ys’ are the coordinates of the selected vertices. 

Example #1:  

Python3




import numpy as np
import matplotlib.pyplot as plt
import matplotlib.lines as lines
 
 
# class for highlighting selected area
class Highlighter(lines.VertexSelector):
     
    # constructor for the highlighter class
    def __init__(self, line, fmt ='ro', **kwargs):
        lines.VertexSelector.__init__(self, line)
        self.markers, = self.axes.plot([], [], fmt, **kwargs)
     
    # helper function process selected area and plot graph accordingly
    def process_selected(self, ind, xs, ys):
        self.markers.set_data(xs, ys)
        self.canvas.draw()
 
figure, ax = plt.subplots()
x_axis, y_axis = np.random.rand(2, 30)
line, = ax.plot(x_axis, y_axis, 'bs-', picker = 5)
 
selector = Highlighter(line)
plt.show()


Output: 

Example 2: 

Python3




import matplotlib.pyplot as plt
import matplotlib.lines as lines
from matplotlib.collections import PathCollection
 
lines.VertexSelector
 
# class for plot clicked area
class dragged_lines:
     
     # constructor for the dragged_lines class
    def __init__(self, ax):
        self.ax = ax
        self.c = ax.get_figure().canvas
 
        self.line = lines.Line2D(x, y, picker = 5, marker ='o',
                              markerfacecolor ='g', color ='y')
 
        self.ax.add_line(self.line)
        self.c.draw_idle()
        self.sid = self.c.mpl_connect('pick_event', self.lineclicker)
 
    def lineclicker(self, event):
        if event.artist:
            print("line selected ", event.artist)
            self.follower = self.c.mpl_connect("motion_notify_event",
                                                 self.mouse_follower)
            self.releaser = self.c.mpl_connect("button_press_event",
                                            self.release_after_click)
 
    def mouse_follower(self, event):
        self.line.set_data([event.xdata, event.ydata])
        self.c.draw_idle()
 
    def release_after_click(self, event):
        data = self.line.get_data()
        print(data)
 
        self.c.mpl_disconnect(self.releaser)
        self.c.mpl_disconnect(self.follower)
 
figure = plt.figure()
axes = figure.add_subplot(111)
x_axis, y_axis = [2, 4, 5, 7], [8, 6, 12, 9]
axes.plot(x_axis, y_axis)
Vline = dragged_lines(axes)
plt.show()


Output: 

 

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS