Puede cambiar el número de marcadores que se muestran en la leyenda utilizando el numpoints
palabra clave:
import matplotlib.pyplot as plt
import numpy as np
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='upper left', numpoints = 1)
plt.show()

I cree que la razón por la que los marcadores aparecen dos veces (de manera predeterminada) es porque m atplotlib está tratando de mostrar los conectores de estilo libre entre los marcadores. Parece un poco extraño cuando no hay conector.
Si la trama tenía líneas continuas y discontinuas,
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
entonces la leyenda se parece a esto:

y ahora se puede ver el efecto del estilo de línea entre los marcadores de la leyenda (así como en el gráfico).
Si no desea ningún mango leyenda en absoluto, entonces se podría utilizar
plt.legend(..., handlelength=0)
Por ejemplo,
import numpy as np
import matplotlib.pyplot as plt
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='best', numpoints=1, handlelength=0)
plt.show()

Usted podría utilizar
plt.legend(loc='best', numpoints=1, handlelength=0,
markerscale=0, handletextpad=0)
para eliminar también el marcador de leyenda.
Entendido. ¡Muchas gracias! – Patrick
¿Es posible hacer que el conector de línea desaparezca por completo? ¿O necesito usar el comando 'scatter()' para eso? – Thriveth
Agregué el código anterior que muestra cómo hacerlo. – unutbu