matplotlib.axes.Axes.contour #
- hachas contorno ( * argumentos , datos = Ninguno , ** kwargs ) [fuente] #
Trazar líneas de contorno.
Firma de llamada:
contour([X, Y,] Z, [levels], **kwargs)
contour
ycontourf
dibujar líneas de contorno y contornos rellenos, respectivamente. Salvo que se indique lo contrario, las firmas de función y los valores devueltos son los mismos para ambas versiones.- Parámetros :
- X, Y tipo matriz, opcional
Las coordenadas de los valores en Z .
X e Y deben ser 2D con la misma forma que Z (por ejemplo, creados a través
numpy.meshgrid
de ), o ambos deben ser 1-D, de modo que sea el número de columnas en Z y el número de filas en Z .len(X) == N
len(Y) == M
X e Y deben ordenarse de forma monótona.
Si no se dan, se supone que son índices enteros, es decir , .
X = range(N)
Y = range(M)
- Z (M, N) tipo matriz
Los valores de altura sobre los que se dibuja el contorno. El mapeo de colores está controlado por cmap , norm , vmin y vmax .
- niveles int o tipo matriz, opcional
Determina el número y las posiciones de las líneas de contorno/regiones.
Si es un int n , use
MaxNLocator
, que intenta elegir automáticamente no más de n+1 niveles de contorno "agradables" entre vmin y vmax .Si es como una matriz, dibuje líneas de contorno en los niveles especificados. Los valores deben estar en orden creciente.
- Devoluciones :
- Otros parámetros :
- corner_mask bool, predeterminado:
rcParams["contour.corner_mask"]
(predeterminado:True
) Activa/desactiva el enmascaramiento de esquinas, que solo tiene efecto si Z es una matriz enmascarada. Si
False
, se enmascara cualquier cuádruple que toque un punto enmascarado. SiTrue
, solo se enmascaran siempre las esquinas triangulares de los cuadrantes más cercanos a esos puntos, otras esquinas triangulares que comprenden tres puntos no enmascarados se contornean como de costumbre.- colores cadena de colores o secuencia de colores, opcional
Los colores de los niveles, es decir, las líneas para
contour
y las áreas paracontourf
.La secuencia se cicla para los niveles en orden ascendente. Si la secuencia es más corta que el número de niveles, se repite.
Como método abreviado, se pueden utilizar cadenas de un solo color en lugar de listas de un elemento, es decir,
'red'
en lugar de['red']
colorear todos los niveles con el mismo color. Este atajo solo funciona para cadenas de colores, no para otras formas de especificar colores.De forma predeterminada (valor Ninguno ), se utilizará el mapa de colores especificado por cmap .
- flotante alfa , predeterminado: 1
El valor de fusión alfa, entre 0 (transparente) y 1 (opaco).
- cmap str o
Colormap
, predeterminado:rcParams["image.cmap"]
(predeterminado:'viridis'
) La instancia de mapa de colores o el nombre de mapa de colores registrado que se utiliza para asignar datos escalares a colores.
Este parámetro se ignora si se establecen colores .
- norma str o
Normalize
, opcional El método de normalización usado para escalar datos escalares al rango [0, 1] antes de mapear a colores usando cmap . De forma predeterminada, se utiliza una escala lineal, asignando el valor más bajo a 0 y el más alto a 1.
Si se da, puede ser uno de los siguientes:
Una instancia de
Normalize
o una de sus subclases (consulte Normalización de mapa de colores ).Un nombre de escala, es decir, uno de "linear", "log", "symlog", "logit", etc. Para obtener una lista de las escalas disponibles, llame al
matplotlib.scale.get_scale_names()
.Normalize
En ese caso, se genera e instancia dinámicamente una subclase adecuada .
Este parámetro se ignora si se establecen colores .
- vmin, vmax flotante, opcional
Cuando se usan datos escalares y no hay una norma explícita , vmin y vmax definen el rango de datos que cubre el mapa de colores. De forma predeterminada, el mapa de colores cubre el rango de valores completo de los datos proporcionados. Es un error usar vmin / vmax cuando se proporciona una instancia de norma (pero es aceptable usar un nombre de norma junto con vmin / vmax ).
str
Si no se proporciona vmin o vmax , la escala de color predeterminada se basa en niveles .
Este parámetro se ignora si se establecen colores .
- origen { Ninguno , 'superior', 'inferior', 'imagen'}, predeterminado: Ninguno
Determina la orientación y la posición exacta de Z especificando la posición de . Esto solo es relevante si no se dan X , Y.
Z[0, 0]
Ninguno : está en X=0, Y=0 en la esquina inferior izquierda.
Z[0, 0]
'inferior': está en X=0.5, Y=0.5 en la esquina inferior izquierda.
Z[0, 0]
'superior': está en X=N+0.5, Y=0.5 en la esquina superior izquierda.
Z[0, 0]
'imagen': usa el valor de
rcParams["image.origin"]
(predeterminado:'upper'
).
- extensión (x0, x1, y0, y1), opcional
Si el origen no es Ninguno , entonces la extensión se interpreta como en
imshow
: proporciona los límites de píxeles externos. En este caso, la posición de Z[0, 0] es el centro del píxel, no una esquina. Si el origen es Ninguno , entonces ( x0 , y0 ) es la posición de Z[0, 0] y ( x1 , y1 ) es la posición de Z[-1, -1].Este argumento se ignora si se especifican X e Y en la llamada a contorno.
- localizador ticker.Locator subclase, opcional
El localizador se utiliza para determinar los niveles de contorno si no se dan explícitamente a través de niveles . El valor predeterminado es
MaxNLocator
.- extender {'ninguno', 'ambos', 'min', 'max'}, por defecto: 'ninguno'
Determina la
contourf
coloración de los valores que están fuera del rango de niveles .Si 'ninguno', los valores fuera del rango de niveles no están coloreados. Si es 'mínimo', 'máximo' o 'ambos', coloree los valores por debajo, por encima o por debajo y por encima del rango de niveles .
Los valores inferiores
min(levels)
y superioresmax(levels)
se asignan a los valores superiores e inferiores deColormap
. Tenga en cuenta que la mayoría de los mapas de colores no tienen colores dedicados para estos de forma predeterminada, por lo que los valores por encima y por debajo son los valores de borde del mapa de colores. Es posible que desee establecer estos valores de forma explícita medianteColormap.set_under
yColormap.set_over
.Nota
No se notifica a un existente
QuadContourSet
si se cambian las propiedades de su mapa de colores. Por lo tanto, se necesita una llamada explícitaQuadContourSet.changed()
después de modificar el mapa de colores. La llamada explícita se puede omitir si se asigna una barra de color aQuadContourSet
porque llama internamente aQuadContourSet.changed()
.Ejemplo:
x = np.arange(1, 10) y = x.reshape(-1, 1) h = x * y cs = plt.contourf(h, levels=[10, 30, 50], colors=['#808080', '#A0A0A0', '#C0C0C0'], extend='both') cs.cmap.set_over('red') cs.cmap.set_under('blue') cs.changed()
- xunits, yunits unidades registradas, opcional
Anule las unidades de eje especificando una instancia de un archivo
matplotlib.units.ConversionInterface
.- bool suavizado , opcional
Habilite el antialiasing, anulando los valores predeterminados. Para contornos rellenos, el valor predeterminado es True . Para contornos de línea, se toma de
rcParams["lines.antialiased"]
(predeterminado:True
).- nchunk int >= 0, opcional
Si es 0, no hay subdivisión del dominio. Especifique un número entero positivo para dividir el dominio en subdominios de nchunk por quads de nchunk . La fragmentación reduce la longitud máxima de los polígonos generados por el algoritmo de contorneado, lo que reduce la carga de trabajo de representación que se transfiere al backend y también requiere un poco menos de RAM. Sin embargo, puede introducir artefactos de representación en los límites de los fragmentos según el backend, la marca antialiasing y el valor de alpha .
- anchos de línea flotantes o tipo matriz, predeterminado:
rcParams["contour.linewidth"]
(predeterminado:None
) Solo se aplica a
contour
.El ancho de línea de las líneas de contorno.
Si es un número, todos los niveles se trazarán con este ancho de línea.
Si es una secuencia, los niveles en orden ascendente se trazarán con los anchos de línea en el orden especificado.
Si es Ninguno, vuelve a
rcParams["lines.linewidth"]
(predeterminado:1.5
).- estilos de línea { Ninguno , 'sólido', 'discontinuado', 'guionado', 'punteado'}, opcional
Solo se aplica a
contour
.Si linestyles es None , el valor predeterminado es 'sólido' a menos que las líneas sean monocromáticas. En ese caso, los contornos negativos tomarán su estilo de línea del argumento de estilos de línea negativos .
Los estilos de línea también pueden ser iterables de las cadenas anteriores que especifican un conjunto de estilos de línea que se usarán. Si este iterable es más corto que el número de niveles de contorno, se repetirá según sea necesario.
- estilos de línea negativos { Ninguno , 'sólido', 'discontinuado', 'guionado', 'punteado'}, opcional
Solo se aplica a
contour
.Si estilos de línea es Ninguno y las líneas son monocromáticas, este argumento especifica el estilo de línea para los contornos negativos.
Si los estilos de línea negativos son Ninguno , el valor predeterminado se toma de
rcParams["contour.negative_linestyles"]
.Los estilos de línea negativos también pueden ser iterables de las cadenas anteriores que especifican un conjunto de estilos de línea que se usarán. Si este iterable es más corto que el número de niveles de contorno, se repetirá según sea necesario.
- lista de escotillas [str], opcional
Solo se aplica a
contourf
.Una lista de patrones de sombreado cruzado para usar en las áreas rellenas. Si es Ninguno, no se agregará sombreado al contorno. La eclosión solo se admite en los backends PostScript, PDF, SVG y Agg.
- algoritmo {'mpl2005', 'mpl2014', 'serial', 'threaded'}, opcional
Qué algoritmo de contorno utilizar para calcular las curvas de nivel y los polígonos. Los algoritmos se implementan en ContourPy , consulte la documentación de ContourPy para obtener más información.
El valor predeterminado se toma de
rcParams["contour.algorithm"]
(predeterminado:'mpl2014'
).- objeto indexable de datos , opcional
Si se proporciona, todos los parámetros también aceptan una cadena
s
, que se interpreta comodata[s]
(a menos que esto genere una excepción).
- corner_mask bool, predeterminado:
notas
contourf
se diferencia de la versión de MATLAB en que no dibuja los bordes del polígono. Para dibujar bordes, agregue contornos de línea con llamadas acontour
.contourf
llena los intervalos que están cerrados en la parte superior; es decir, para los límites z1 y z2 , la región rellena es:z1 < Z <= z2
excepto por el intervalo más bajo, que está cerrado en ambos lados (es decir, incluye el valor más bajo).
contour
ycontourf
use un algoritmo de cuadrados de marcha para calcular las ubicaciones de los contornos. Se puede encontrar más información en la documentación de ContourPy .
Ejemplos usando matplotlib.axes.Axes.contour
#
Máscara de esquina de contorno
Demostración de etiqueta de contorno
Contorno del espacio de solución de optimizaciones
Combinar transparencia con color en imágenes 2D
Gráfico de contorno de datos espaciados irregularmente
Demuestra trazar curvas de contorno (nivel) en 3D
Demuestra el trazado de curvas de contorno (nivel) en 3D usando la opción extend3d
Proyectar perfiles de contorno en un gráfico