📌  相关文章
📜  Python中的 Matplotlib.axis.Axis.get_contains()

📅  最后修改于: 2022-05-13 01:54:51.701000             🧑  作者: Mango

Python中的 Matplotlib.axis.Axis.get_contains()

Matplotlib是Python中的一个库,它是 NumPy 库的数值数学扩展。它是Python中用于二维数组图的惊人可视化库,用于处理更广泛的 SciPy 堆栈。

matplotlib.axis.Axis.get_contains()函数

matplotlib库的axis模块中的axis.get_contains()函数用于获取艺术家的自定义包含函数。

下面的示例说明了 matplotlib.axis 中的 matplotlib.axis.Axis.get_contains()函数:

示例 1:

Python3
# Implementation of matplotlib function
from matplotlib.axis import Axis
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()) 
     
Axis.set_contains(ax2, picker = onpick1) 
    
ax2.text(0.5, 0.8,  
         "Value Return : "
         + str(Axis.get_contains(ax2)),   
         fontweight ="bold", fontsize = 10) 
  
fig.suptitle("""matplotlib.axis.Axis.get_contains()
function Example\n""", fontweight ="bold")  
    
plt.show()


Python3
# Implementation of matplotlib function
from matplotlib.axis import Axis
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()  
     
Axis.set_contains(ax, picker = line_picker) 
    
ax.text(0.1, 0.8,  
         "Value Return : "
         + str(Axis.get_contains(ax)),   
         fontweight ="bold", fontsize = 10)
  
fig.suptitle("""matplotlib.axis.Axis.get_contains()
function Example\n""", fontweight ="bold")  
    
plt.show()


输出:

示例 2:

Python3

# Implementation of matplotlib function
from matplotlib.axis import Axis
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()  
     
Axis.set_contains(ax, picker = line_picker) 
    
ax.text(0.1, 0.8,  
         "Value Return : "
         + str(Axis.get_contains(ax)),   
         fontweight ="bold", fontsize = 10)
  
fig.suptitle("""matplotlib.axis.Axis.get_contains()
function Example\n""", fontweight ="bold")  
    
plt.show()

输出: