HOME


sh-3ll 1.0
DIR:/usr/local/lib/python3.6/site-packages/xarray/plot/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.6/site-packages/xarray/plot/__pycache__/utils.cpython-36.pyc
3

���h.�	@s\ddlZddlZddlZddlmZddd�Zdd�Zd	d
�Z	dd�Z
ddd�Zdd�ZdS)�N�)�
basestring�default_colormap.csvcCs4ddlm}tjt|�}tj|dd�j}|jd|�S)z#
    Returns viridis color map
    r)�LinearSegmentedColormapN)�header�viridis)	�matplotlib.colorsr�
pkg_resources�resource_stream�__name__�pdZread_csv�values�	from_list)�fnamer�fZcm_data�r�1/tmp/pip-build-5_djhm0z/xray/xarray/plot/utils.py�_load_default_cmap	srcCsB|j�|k}|j�|k}|r&|r&d}n|r0d}n|r:d}nd}|S)N�both�min�max�neither)rr)�	calc_data�vmin�vmaxZ
extend_minZ
extend_max�extendrrr�_determine_extendsrc
Csvddl}|sd}|dkrd}n|dkr,d}nd}t|�|d}t||�}|jj|||d	�\}}	t|d
|�|_||	fS)zB
    Build a discrete colormap and normalization of the data.
    rNrrrrr�)r�name)rr)�
matplotlib�len�_color_palette�colorsZfrom_levels_and_colors�getattrr)
�cmap�levelsr�filled�mplZext_n�n_colors�palZnew_cmap�cnormrrr�_build_discrete_cmap$s
r+cCsddlj}ddlm}tjdd|�}t|ttf�rzyddl	m
}|||d�}Wq�tk
rv|||d�}||�}Yq�Xn�t|t�r�yddl	m
}|||d�}Wq�tt
fk
r�y|j|�}Wn"t
k
r�||g|d�}YnX||�}Yq�Xn||�}|S)Nr)�ListedColormapg�?)�
color_palette)r()�N)Zmatplotlib.pyplotZpyplotrr,�npZlinspace�
isinstance�list�tupleZseaborn.apionlyr-�ImportErrorr�
ValueErrorZget_cmap)r$r(Zpltr,Zcolors_ir-r)rrrr!@s,

r!FTc
Cs�d}
ddl}tj|tj|��}|dk	}
d}|dkr>d}d}|dk	rR|dk	rRd}
d}|dkrz|rptj||
�}q�|j�}n|
r�t||�}|dkr�|r�tj|d|
�}q�|j�}n|
r�t||�}|
r�|dkr�|dkp�|}nd}|�r|dk�rtt||�t||��}||}}||7}||7}|dk�rB|�r>d}nd}|dk�rRt	�}|dk	�r�t
|t��r�|jj
|�}|j||�}|d|d}}|dk�r�t|||�}|dk	�r�t||||�\}}	t||||||	d
�S)av
    Use some heuristics to set good defaults for colorbar and range.

    Adapted from Seaborn:
    https://github.com/mwaskom/seaborn/blob/v0.6/seaborn/matrix.py#L158

    Parameters
    ==========
    plot_data: Numpy array
        Doesn't handle xarray objects

    Returns
    =======
    cmap_params : dict
        Use depends on the type of the plotting function
    g@rNFT�dZRdBu_rrr)rrr$rr%Znorm���)rr/ZravelrZisnullZ
percentiler�absrrr0�int�tickerZMaxNLocatorZtick_valuesrr+�dict)Z	plot_datarrr$�centerZrobustrr%r&r*ZROBUST_PERCENTILEr'rZpossibly_divergentZcenter_is_noneZvlimZ	divergentr9rrr�_determine_cmap_paramsfsb








r<csr|dkr.|dkr.�jdkr"td���j\}}n<|dks>|dkrHtd��n"t�fdd�||fD��rjtd��||fS)zf
    Determine x and y labels. For use in _plot2d

    darray must be a 2 dimensional data array.
    NrzDataArray must be 2dz!cannot supply only one of x and yc3s|]}|�jkVqdS)N)Zcoords)�.0�k)�darrayrr�	<genexpr>�sz#_infer_xy_labels.<locals>.<genexpr>z$x and y must be coordinate variables)�ndimr4Zdims�any)r?�x�yr)r?r�_infer_xy_labels�s

rE)r)	NNNNFNNTN)
r	Znumpyr/ZpandasrZ
core.pycompatrrrr+r!r<rErrrr�<module>s

&
b