2012-05-23 107 views
7

No he podido encontrar otro hilo o documentación sobre este tema: ¿alguna vez alguien ha tenido éxito al subrayar en el paquete pythons matplotlib? La sintaxis que estoy usando es algo como esto para todos los otros atributos:Subrayar texto en Python/Matplotlib

plt.text(0.05, 0.90, 'Parameters: ', fontsize=12) 

Sin embargo, no puedo encontrar la manera de subrayar este breve texto de codificación en realidad una línea en el archivo.

¿Pensamientos?

Respuesta

11

Matplotlib puede usar LaTeX para manejar todo el texto, vea this page de la documnetation para obtener más información. El comando para subrayar texto en LaTeX es simplemente \underline. Desde la cadena de documentación de uno de los scripts de ejemplo:

Puede usar TeX para hacer todo su texto matplotlib si se establece el parámetro text.usetex rc. Esto funciona actualmente en los backends agg y ps, y requiere que tenga tex y las otras dependencias descritas en http://matplotlib.sf.net/matplotlib.texmanager.html correctamente instaladas en su sistema. La primera vez que ejecute un script verá una gran cantidad de resultados de tex y herramientas asociadas. La próxima vez, la carrera puede estar en silencio, como una gran cantidad de la información que se almacena en ~/.tex.cache

Así como un ejemplo sencillo podemos hacer

import matplotlib.pyplot as plt 
from matplotlib import rc 

rc('text', usetex=True) 

plt.sunplot(111) 

plt.text(0.05, 0.90, r'\underline{Parameters}: ', fontsize=12) 

para obtener el texto subrayado .

+0

Hola Chris, solución elegante. Pude ver el subrayado de esa manera, pero cambiar el usetex a True también afecta el resto del texto en la figura (por ejemplo, la numeración en los ejes de las tramas se convierte en serif y otros textos en negrita se convierten en negrita). Supongo que lo haría tiene que cambiar todos esos a formato tex, también, ¿no? – nodapic

+0

Generalmente puedo usar comandos LaTeX sin el negocio 'rc' (que es lo que supongo hace que todos los demás textos se representen de manera diferente). Sin embargo, parece que lo necesito en mi máquina con Windows (normalmente trabajo en una máquina Linux, no estoy seguro si esto es un problema). Pruébalo sin esa línea y mira si la llamada 'plt.text' todavía funciona. – Chris

+0

He encontrado que puedo usar comandos LaTeX * sin * llamar a 'rc' siempre que no use' plt.text', es decir 'plt.xlabel',' plt.title' etc. funcionan bien. Parece ser simplemente 'plt.text' que me obliga a configurar' rc'. Si encuentra que necesita usar 'rc', también puede confiurar las fuentes, etc. que desea usar. – Chris

Cuestiones relacionadas