Editar: que había tenido esta abierta y la izquierda, por lo que no se dio cuenta @ La respuesta de Ricardo Debido a que matplotlib convertirá las cosas en matrices numpy independientemente, hay formas más eficientes de hacerlo.
Como un ejemplo:
Sólo trazar dos líneas diferentes, uno con un estilo de línea de trazos y otro con un estilo de línea sólida.
E.g.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y1 = 2 * x
y2 = 3 * x
xthresh = 4.5
diff = np.abs(y1 - y2)
below = diff < xthresh
above = diff >= xthresh
# Plot lines below threshold as dotted...
plt.plot(x[below], y1[below], 'b--')
plt.plot(x[below], y2[below], 'g--')
# Plot lines above threshold as solid...
plt.plot(x[above], y1[above], 'b-')
plt.plot(x[above], y2[above], 'g-')
plt.show()
Para el caso en que son cíclicos, utilizan matrices enmascarados:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y1 = 2 * np.cos(x)
y2 = 3 * np.sin(x)
xthresh = 2.0
diff = np.abs(y1 - y2)
below = diff < xthresh
above = diff >= xthresh
# Plot lines below threshold as dotted...
plt.plot(np.ma.masked_where(below, x), np.ma.masked_where(below, y1), 'b--')
plt.plot(np.ma.masked_where(below, x), np.ma.masked_where(below, y2), 'g--')
# Plot lines above threshold as solid...
plt.plot(np.ma.masked_where(above, x), np.ma.masked_where(above, y1), 'b-')
plt.plot(np.ma.masked_where(above, x), np.ma.masked_where(above, y2), 'g-')
plt.show()
Qué sobre la fabricación de dos parcelas por cada curva? Uno con el primer conjunto de puntos (antes de que los valores comiencen a converger) y luego otro con el segundo conjunto. Simplemente configure las parcelas para que tengan el mismo estilo (color, marcador, etc.), ¡excepto el estilo de línea! :) –
Gracias, intentaré esto. Tengo algunas otras parcelas donde las líneas divergen de nuevo más adelante en el ciclo de entrar y salir de importancia. Esto significará que tendré muchos comandos de trama, pero espero poder resolverlos. – Sceeerutinizer
@ RicardoCardenes- Le sugiero que ponga su comentario como respuesta para que pueda ser votado/aceptado. Es la forma correcta de hacerlo :-) –