← Back
Editing: _plotutils.cpython-311.pyc
� d�c � � � d dl Zd dlmZ g d�Zed d�� � Zd� Zed d�� � Zed d�� � Z ed d�� � Z dS ) � N)� decorator)�delaunay_plot_2d�convex_hull_plot_2d�voronoi_plot_2dc �f � dd l m} |�3|� � � }|� � � } | |fd|i|��S t |dd� � � � � }|r | |fd|i|��S |� d� � | |fd|i|��|� |� � S # |� |� � w xY w)Nr �ax�isholdc � � dS )NT� r � �:/usr/lib/python3/dist-packages/scipy/spatial/_plotutils.py�<lambda>z_held_figure.<locals>.<lambda> s � �T� r T)�matplotlib.pyplot�pyplot�figure�gca�getattr�hold)�func�objr �kw�plt�fig�was_helds r �_held_figurer s� � �#�#�#�#�#�#� �z��j�j�l�l�� �W�W�Y�Y���t�C�%�%�B�%�"�%�%�%� 3�w�r�8�\�\�2�2�4�4�H�� &��t�C�%�%�B�%�"�%�%�%�� ���� � � ��t�C�%�%�B�%�"�%�%� �������������������s �$B �B0c �$ � d|� d�� � z }|� d�� � |z }|� d�� � |z }| � |d |d � � | � |d |d � � d S )Ng�������?r ��axis� )�ptp�min�max�set_xlim�set_ylim)r �points�margin�xy_min�xy_maxs r �_adjust_boundsr) s� � � �6�:�:�1�:�%�%� %�F� �Z�Z�Q�Z� � �&� (�F� �Z�Z�Q�Z� � �&� (�F��K�K��q� �6�!�9�%�%�%��K�K��q� �6�!�9�%�%�%�%�%r c �, � | j j d dk rt d� � �| j j \ }}|� ||d� � |� ||| j � � � � � t || j � � |j S )aB Plot the given Delaunay triangulation in 2-D Parameters ---------- tri : scipy.spatial.Delaunay instance Triangulation to plot ax : matplotlib.axes.Axes instance, optional Axes to plot on Returns ------- fig : matplotlib.figure.Figure instance Figure for the plot See Also -------- Delaunay matplotlib.pyplot.triplot Notes ----- Requires Matplotlib. Examples -------- >>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.spatial import Delaunay, delaunay_plot_2d The Delaunay triangulation of a set of random points: >>> rng = np.random.default_rng() >>> points = rng.random((30, 2)) >>> tri = Delaunay(points) Plot it: >>> _ = delaunay_plot_2d(tri) >>> plt.show() r � z!Delaunay triangulation is not 2-D�o) r% �shape� ValueError�T�plot�triplot� simplices�copyr) r )�trir �x�ys r r r $ s� � �Z �z����a����<�=�=�=��:�<�D�A�q��G�G�A�q�#�����J�J�q�!�S�]�'�'�)�)�*�*�*��2�s�z�"�"�"� �9�r c �d � � ddl m} � j j d dk rt d� � �|� � j dd�df � j dd�df d� � � fd�� j D � � }|� ||d d �� � � � t |� j � � |j S )a& Plot the given convex hull diagram in 2-D Parameters ---------- hull : scipy.spatial.ConvexHull instance Convex hull to plot ax : matplotlib.axes.Axes instance, optional Axes to plot on Returns ------- fig : matplotlib.figure.Figure instance Figure for the plot See Also -------- ConvexHull Notes ----- Requires Matplotlib. Examples -------- >>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.spatial import ConvexHull, convex_hull_plot_2d The convex hull of a random set of points: >>> rng = np.random.default_rng() >>> points = rng.random((30, 2)) >>> hull = ConvexHull(points) Plot it: >>> _ = convex_hull_plot_2d(hull) >>> plt.show() r ��LineCollectionr r+ zConvex hull is not 2-DNr, c �* �� g | ]}�j | ��S r )r% )�.0�simplex�hulls �r � <listcomp>z'convex_hull_plot_2d.<locals>.<listcomp>� s �� �H�H�H�g�T�[��)�H�H�Hr �k�solid)�colors� linestyle) �matplotlib.collectionsr9 r% r- r. r0 r2 �add_collectionr) r )r= r r9 � line_segmentss ` r r r ] s� �� �Z 6�5�5�5�5�5��{����q� � ��1�2�2�2��G�G�D�K����1���t�{�1�1�1�a�4�0�#�6�6�6�H�H�H�H���H�H�H�M����n�n�]�,/�/6�8� 8� 8� 9� 9� 9� �2�t�{�#�#�#� �9�r c � � ddl m} | j j d dk rt d� � �|� dd� � rM|� dd � � }|� | j d d �df | j d d �df d |�� � |� dd� � r5|� | j d d �df | j d d �df d � � |� dd� � }|� dd� � }|� dd� � }| j � d�� � }| j � d�� � } g } g }t | j | j � � D �]p\ }} t j | � � } t j | dk � � r!| � | j | � � �S| | dk d }| j |d | j |d z }|t j � |� � z }t j |d |d g� � }| j | � d�� � }t j t j ||z |� � � � |z }| j r| }| j | || � � � z z }|� | j | |g� � ��r|� || |||d�� � � � |� |||||d�� � � � t3 || j � � |j S )a; Plot the given Voronoi diagram in 2-D Parameters ---------- vor : scipy.spatial.Voronoi instance Diagram to plot ax : matplotlib.axes.Axes instance, optional Axes to plot on show_points : bool, optional Add the Voronoi points to the plot. show_vertices : bool, optional Add the Voronoi vertices to the plot. line_colors : string, optional Specifies the line color for polygon boundaries line_width : float, optional Specifies the line width for polygon boundaries line_alpha : float, optional Specifies the line alpha for polygon boundaries point_size : float, optional Specifies the size of points Returns ------- fig : matplotlib.figure.Figure instance Figure for the plot See Also -------- Voronoi Notes ----- Requires Matplotlib. Examples -------- >>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.spatial import Voronoi, voronoi_plot_2d Create a set of points for the example: >>> rng = np.random.default_rng() >>> points = rng.random((10,2)) Generate the Voronoi diagram for the points: >>> vor = Voronoi(points) Use `voronoi_plot_2d` to plot the diagram: >>> fig = voronoi_plot_2d(vor) Use `voronoi_plot_2d` to plot the diagram again, with some settings customized: >>> fig = voronoi_plot_2d(vor, show_vertices=False, line_colors='orange', ... line_width=2, line_alpha=0.6, point_size=2) >>> plt.show() r r8 r r+ zVoronoi diagram is not 2-D�show_pointsT� point_sizeN�.)� markersize� show_verticesr, �line_colorsr? � line_widthg �?� line_alphar r@ )rA �lw�alpharB �dashed)rC r9 r% r- r. �getr0 �vertices�meanr �zip�ridge_points�ridge_vertices�np�asarray�all�append�linalg�norm�array�sign�dot� furthest_siter"