Quiero dar a mi gráfico un título en letra grande de 18 puntos, luego un subtítulo debajo en una fuente más pequeña de 10 puntos. ¿Cómo puedo hacer esto en matplotlib? Parece que la función title()
solo toma una sola cadena con un solo atributo fontsize
. Tiene que haber una manera de hacer esto, pero ¿cómo?Dando a los gráficos un subtítulo en matplotlib
Respuesta
no creo que haya nada incorporado, pero puede hacerlo dejando más espacio por encima de sus ejes y el uso de figtext
:
axes([.1,.1,.8,.7])
figtext(.5,.9,'Foo Bar', fontsize=18, ha='center')
figtext(.5,.85,'Lorem ipsum dolor sit amet, consectetur adipiscing elit',fontsize=10,ha='center')
ha
es la abreviatura de horizontalalignment
.
Lo que hago es usar la función title() para el subtítulo y el subtítulo() para el título principal (pueden tomar diferentes argumentos fontsize). ¡Espero que ayude!
Aunque esto no le da la flexibilidad asociada con múltiples tamaños de fuente, agregar un carácter de nueva línea a su cadena pyplot.title() puede ser una solución simple;
plt.title('Really Important Plot\nThis is why it is important')
La mayoría de las veces quiere algunas diferencias estilísticas entre títulos y subtítulos. De lo contrario, parece un título descuidado dividido en dos líneas. – Annan
¡Solo tiene que utilizar TeX! Esto funciona:
title(r"""\Huge{Big title !} \newline \tiny{Small subtitle !}""")
EDIT: Para habilitar el procesamiento de TeX, es necesario agregar la línea "usetex = True" a matplotlib parámetros:
fig_size = [12.,7.5]
params = {'axes.labelsize': 8,
'text.fontsize': 6,
'legend.fontsize': 7,
'xtick.labelsize': 6,
'ytick.labelsize': 6,
'text.usetex': True, # <-- There
'figure.figsize': fig_size,
}
rcParams.update(params)
supongo que también necesita una distribución TeX a trabajar en su computadora. Todos los detalles se dan en esta página:
suena interesante, pero ¿ha establecido algún indicador adicional para matplotlib para habilitar el modo tex? Usar 1.4.1 con la configuración predeterminada no funciona para tu ejemplo. Trazar las matemáticas con r "$ expr $" en el título funciona por cierto. – marscher
mismo problema aquí – dranxo
Este es un ejemplo de código que implementa pandas respuesta de Floris van Vugt (Diciembre 20, 2010). Dijo:
> Lo que hago es usar la función title() para el subtítulo y el subtítulo() para el> título principal (pueden tomar diferentes argumentos fontsize). ¡Espero que ayude!
import pandas as pd
import matplotlib.pyplot as plt
d = {'series a' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'series b' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
title_string = "This is the title"
subtitle_string = "This is the subtitle"
plt.figure()
df.plot(kind='bar')
plt.suptitle(title_string, y=1.05, fontsize=18)
plt.title(subtitle_string, fontsize=10)
Nota: no podía comentar sobre eso respuesta porque soy nuevo en stackoverflow.
¿Qué pasa si tienes dos subtramas? Si llamo 'subtitle_string = ('Panel superior: Max, Avg, Min,% Huella | Panel inferior: Huella% y Células Criticas%')' y luego 'plt.suptitle (title_string, y = 0.99, fontsize = 17)' en un gráfico con dos subparcelas, el subtítulo se imprime por encima de la segunda subtrama en lugar de la primera y no veo la leyenda impresa. – FaCoffee
- 1. Gráficos de líneas transparentes Matplotlib
- 2. Línea de progreso en Matplotlib Gráficos
- 3. Generación de gráficos matplotlib sin un servidor X en ejecución
- 4. gráficos 3D utilizando maplot3d de matplotlib-
- 5. Dando a los usuarios un "sistema de reputación" - ¿Debería ...?
- 6. estableciendo el espaciado entre gráficos de barras agrupadas en matplotlib
- 7. Barras etiquetadas individualmente para gráficos de barras en matplotlib/Python
- 8. Gráficos de Matplotlib que no se muestran en sublimetext
- 9. Cómo cambiar los procesadores en matplotlib/Python
- 10. Subtítulo de fondo en Azure Web Role
- 11. ¿Cómo cambio el tamaño de fuente de la escala en los gráficos de matplotlib?
- 12. R: subtítulo xtable (o comentario)
- 13. Matplotlib: gráfico interactivo en un servidor web
- 14. ¿Es posible agregar título a los gráficos?
- 15. Cómo poner un subtítulo en FLV convertidos por ffmpeg
- 16. ¿Cómo puedo producir gráficos al estilo de los estudiantes usando matplotlib?
- 17. Trazado de dos gráficos que comparten un eje x en matplotlib
- 18. MonoTouch - ICSharpCode.SharpZipLib dando un error
- 19. Cómo agregar flechas a los gráficos de líneas en Matlab?
- 20. androide 4.0 del subtítulo (sección) Etiqueta Styling
- 21. Orden de la célula tableview el subtítulo
- 22. Cómo cambiar los ejes en matplotlib?
- 23. Gráficos en aplicaciones web django
- 24. ¿Cuándo debo usar dispose() en los gráficos?
- 25. WIX: dando permisos a una carpeta
- 26. coincidencia de patrones en los gráficos
- 27. Mejoras en los gráficos base R
- 28. Estableciendo un eje en matplotlib
- 29. matplotlib - Leyenda en subtrama separada
- 30. Animar encabezados de un ListView dando ClassCastException
Al menos en una trama polar estándar, el título, el subtítulo y el marcador de 90 grados se superponen, especialmente si utiliza fuentes más grandes. – gbronner