Matplotlib.artist.artist.get_contains() - 返回artist的自定义包含函数

Matplotlib.artist.artist.get_contains()

Python matplotlib库的artist模块中的get_contains()方法用于返回artist的自定义包含函数。

语法:Artist.get_contains(self)

参数:该方法不接受任何参数。

该方法返回artist的自定义包含函数。

下面的例子说明了matplotlib中的matplotlib.artist.artist.get_contains()函数:

示例1

# Implementation of matplotlib function
from matplotlib.artist import Artist
import matplotlib.pyplot as plt 
from matplotlib.lines import Line2D 
import numpy as np 
from numpy.random import rand 
  
  
fig, ax2 = plt.subplots() 
      
ax2.bar(range(10), rand(10), picker = True) 
    
for label in ax2.get_xticklabels():  
    label.set_picker(True) 
      
def onpick1(event): 
        
    if isinstance(event.artist, Line2D): 
        thisline = event.artist 
        xdata = thisline.get_xdata() 
        ydata = thisline.get_ydata() 
        ind = event.ind 
        print('onpick1 line:', 
               np.column_stack([xdata[ind],  
                               ydata[ind]])) 
            
    elif isinstance(event.artist, Rectangle): 
        patch = event.artist 
        print('onpick1 patch:', patch.get_path()) 
            
    elif isinstance(event.artist, Text): 
        text = event.artist 
        print('onpick1 text:', text.get_text())
   
Artist.set_contains(ax2, picker = onpick1)
  
ax2.text(0.5, 0.8, 
         "Value Return : "
         + str(Artist.get_contains(ax2)),  
         fontweight ="bold", fontsize = 10) 
          
fig.suptitle('matplotlib.artist.Artist.get_contains() \
function Example', fontweight ="bold") 
  
plt.show()

输出:

Matplotlib.artist.artist.get_contains()

示例2

# Implementation of matplotlib function
from matplotlib.artist import Artist
# Implementation of matplotlib function 
import matplotlib.pyplot as plt 
from matplotlib.lines import Line2D 
import numpy as np 
from numpy.random import rand 
  
      
fig, ax = plt.subplots() 
ax.plot(rand(100), rand(100), 'o') 
      
def line_picker(line, mouseevent): 
        
    if mouseevent.xdata is None: 
        return False, dict() 
        
    xdata = line.get_xdata() 
    ydata = line.get_ydata() 
    maxd = 0.05
    d = np.sqrt( 
        (xdata - mouseevent.xdata)**2 + (ydata - mouseevent.ydata)**2) 
    
    ind, = np.nonzero(d <= maxd) 
        
    if len(ind): 
            
        pickx = xdata[ind] 
        picky = ydata[ind] 
        props = dict(ind = ind, pickx = pickx, picky = picky) 
        return True, props 
        
    else: 
        return False, dict() 
   
Artist.set_contains(ax, picker = line_picker)
  
ax.text(0.1, 0.8, 
         "Value Return : "
         + str(Artist.get_contains(ax)),  
         fontweight ="bold", fontsize = 10) 
          
fig.suptitle('matplotlib.artist.Artist.get_contains() \
function Example', fontweight ="bold") 
  
plt.show()

输出:

Matplotlib.artist.artist.get_contains()

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Matplotlib.artist