2011-12-01 22 views
6

Tengo un diagrama de dispersión que usa seis símbolos diferentes para trazar puntos. Por ejemplo, el código de abajo traza un punto con el símbolo triángulo que apunta hacia abajo:Necesito usar marcadores de dispersión matplotlib fuera del gráfico, en etiquetas para un gráfico de barras

my_axis.scatter([x], [y], marker='v') 

Cada símbolo representa una clase diferente de objeto. Necesito hacer referencia a los símbolos utilizados en el diagrama de dispersión en un gráfico diferente, un gráfico de barras que explica las proporciones de cada clase en cada grupo en el diagrama de dispersión.

¿Cómo puedo hacer que las etiquetas de los gráficos de barras usen los símbolos utilizados para los marcadores del diagrama de dispersión? Como puede ver en la imagen a continuación, las etiquetas debajo de cada barra deben corresponder a los marcadores en el gráfico, pero no lo hacen porque no sé cómo convocar a los marcadores fuera del contexto del diagrama de dispersión. En cambio, solo muestran la letra de código del marcador (por ejemplo, v en lugar de un triángulo real).

Ignore el hecho de que la línea de porcentajes distorsionada se solapa, ese es un problema aparte que corregiré.

Estaría bien agregar manualmente los símbolos a la leyenda del gráfico de barras si fueran símbolos UTF-8 que podría encontrar en algún lugar, pero no he podido encontrar la especificación exacta de cada carácter.

También estoy buscando el uso de .text() con caracteres literales UTF-8, en lugar de .scatter(), pero muchos símbolos no se mostrarán (aparecen como cuadrados) incluso cuando elijo una fuente Unicode con fontproperties. así que estoy atrapado en ese enfoque.

¡Gracias por la ayuda!

scatter plot and bar graphs

Respuesta

3

El uso de Latex es una solución bastante fácil. Por ejemplo:

from matplotlib import rc 
rc('text', usetex=True) 
plt.xticks(ind+width/2., ("$\lozenge$", "$\square$", "$\plus$", "o", "$\bigtriangledown$")) 

Y si necesita ayuda para saber los nombres de los símbolos, this es un pequeño gran sitio web que le permite dibujar el símbolo que desea y va a dar salida a los nombres de látex.

+0

Esa es de hecho una fantástica herramienta Unicode, me encanta. ¡Compruébalo con todos! Voy a ir con texto Unicode para los marcadores, no terminé usando LaTeX, solo símbolos literales. – mrjf

+0

Me alegro de poder ayudar. Siento que soy un promotor (prometo que no), pero Detexify incluso tiene aplicaciones para teléfonos, que en realidad son bastante divertidas. – cosmosis

Cuestiones relacionadas