Matplotlib marcador / símbolo personalizado

Así que hay esta guía: http://matplotlib.org/examples/pylab_examples/scatter_symbol.html introduzca la descripción de la imagen aquí

# http://matplotlib.org/examples/pylab_examples/scatter_symbol.html from matplotlib import pyplot as plt import numpy as np import matplotlib x = np.arange(0.0, 50.0, 2.0) y = x ** 1.3 + np.random.rand(*x.shape) * 30.0 s = np.random.rand(*x.shape) * 800 + 500 plt.scatter(x, y, s, c="g", alpha=0.5, marker=r'$\clubsuit$', label="Luck") plt.xlabel("Leprechauns") plt.ylabel("Gold") plt.legend(loc=2) plt.show() 

Pero qué pasa si eres como yo y no quieres usar un marcador de traje de club …

¿Cómo haces tu propio marcador _________?

ACTUALIZAR

Lo que me gusta de este tipo de marcador especial es que es fácil de ajustar con la simple syntax de matplotlib:

 from matplotlib import pyplot as plt import numpy as np import matplotlib x = np.arange(0.0, 50.0, 2.0) y = x ** 1.3 + np.random.rand(*x.shape) * 30.0 s = np.random.rand(*x.shape) * 800 + 500 plt.plot(x, y, "ro", alpha=0.5, marker=r'$\clubsuit$', markersize=22) plt.xlabel("Leprechauns") plt.ylabel("Gold") plt.show() 

introduzca la descripción de la imagen aquí

Entonces descubrí que solo estaba usando símbolos de texto matemático y no se refería a ningún marcador especial basado en vectores almacenado en el módulo matplotlib …

 from matplotlib import pyplot as plt import numpy as np from numpy.random import randint import matplotlib x = np.arange(0.0, 100.0, 2.0) y = x ** 1.3 + np.random.rand(*x.shape) * 30.0 s = np.random.rand(*x.shape) * 800 + 500 markers = ['\\alpha', '\\beta', '\gamma', '\sigma','\infty', \ '\spadesuit', '\heartsuit', '\diamondsuit', '\clubsuit', \ '\\bigodot', '\\bigotimes', '\\bigoplus', '\imath', '\\bowtie', \ '\\bigtriangleup', '\\bigtriangledown', '\oslash' \ '\ast', '\\times', '\circ', '\\bullet', '\star', '+', \ '\Theta', '\Xi', '\Phi', \ '\$', '\#', '\%', '\S'] def getRandomMarker(): return "$"+markers[randint(0,len(markers),1)]+"$" def getMarker(i): # Use modulus in order not to have the index exceeding the lenght of the list (markers) return "$"+markers[i % len(markers)]+"$" for i, mi in enumerate(markers): plt.plot(x[i], y[i], "b", alpha=0.5, marker=getRandomMarker(), markersize=randint(16,26,1)) plt.plot(x[i], y[i]+50, "m", alpha=0.5, marker=getMarker(i), markersize=randint(16,26,1)) # Let's see if their "center" is located where we expect them to be... plt.plot(x[i], y[i]+100, "y", alpha=0.5, marker=getMarker(i), markersize=24) plt.plot(x[i], y[i]+100, "k+", markersize=12, markeredgewidth=2) plt.xlabel("x-axis") plt.ylabel("y-axis") plt.xlim( -5, plt.xlim()[1]+5 ) plt.ylim( 0, plt.ylim()[1]*1.1 ) plt.gcf().set_size_inches(12,6) plt.show() 

Comprobar imagen