2012-07-29 17 views
8

Estoy utilizando el siguiente como una etiqueta de eje en matplotlib:Cómo quitar espacio extraño en matemáticas de estilo LaTeX en la parcela matplotlib

"Pixel Radiance ($W/m^2/\mu m$)" 

Pero cuando produzco un gráfico con esto como el eje y la etiqueta I obtener la imagen de abajo, que tiene un espacio extraño entre el m^2 y el \ mu que lo hace parecer bastante extraño. ¿Cómo puedo eliminar este extraño espacio?

example graph

Un ejemplo reproducible, sin necesidad de utilizar cualquiera de mis propios datos, es decir:

from matplotlib.pyplot import * 
plot([1, 2, 3], [1, 2, 3]) 
ylabel("($W/{m^2}/\mu m$)") 
+2

Símbolos de unidad SI por lo general no deberían ser _italic_ – moooeeeep

+0

Es complicado obtener un $ ital no en cursiva. – mikuszefski

Respuesta

14

Se puede utilizar un espacio negativo, \!:

r"Pixel Radiance ($W/m^2\!/\mu m$)" 

Por cierto, I' recomendamos utilizar cadenas sin formato con fórmulas LaTeX, ya que eso evitará que los comandos LaTeX (o partes de ellos) se interpreten como escapes invertidos: probablemente No quiero que \tau termine como una pestaña seguida de au.

+3

+1 por sugerencia de cadena sin procesar –

1

Matplotlib intenta interpretar el código Latex y tiene su propio método para imprimir el texto. Los resultados no necesariamente coinciden con el resultado del compilador de látex real. Si desea una representación real de texto Latex, debe habilitar el parámetro rc text.usetex. Esto también le permite cargar paquetes de látex (como siunitx) y crear figuras que coincidan con su documento si planea incluirlos.

El espacio adicional no aparece cuando se utiliza látex. Simplemente podría usar la solución alternativa y agregar un espacio negativo, pero tiendo a utilizar Latex al crear figuras para documentos.

+0

Ah, y algo de publicidad para mi backend de matplotlib Xelatex :) https://github.com/pwuertz/matplotlib-backend-pgf – pwuertz

Cuestiones relacionadas