python - matrices - Matplotlib hace que las etiquetas de tick tamaño de letra más pequeño
graficar matrices en python (10)
En una figura de matplotlib, ¿cómo puedo hacer que el tamaño de fuente para las etiquetas de tick usando ax1.set_xticklabels()
más pequeño?
Además, ¿cómo se puede rotar de horizontal a vertical?
Alternativamente, puedes simplemente hacer:
import matplotlib as mpl
label_size = 8
mpl.rcParams[''xtick.labelsize''] = label_size
En las versiones actuales de Matplotlib, puedes hacer axis.set_xticklabels(labels, fontsize=''small'')
.
Hay una forma más sencilla en realidad. Acabo de encontrar:
import matplotlib.pyplot as plt
# We prepare the plot
fig = plt.figure(1)
# We define a fake subplot that is in fact only the plot.
plot = fig.add_subplot(111)
# We change the fontsize of minor ticks label
plot.tick_params(axis=''both'', which=''major'', labelsize=10)
plot.tick_params(axis=''both'', which=''minor'', labelsize=8)
Sin embargo, esto solo responde al tamaño de la parte de la label
de su pregunta.
Lo siguiente me funcionó:
ax2.xaxis.set_tick_params(labelsize=7)
ax2.yaxis.set_tick_params(labelsize=7)
La ventaja de lo anterior es que no necesita proporcionar la array
de labels
y funciona con cualquier información sobre los axes
.
Otra alternativa
Tengo dos parcelas una al lado de la otra y me gustaría ajustar las etiquetas de tick por separado.
Las soluciones anteriores estaban cerca, sin embargo, no funcionaban para mí. Encontré mi solución en esta page matplotlib.
ax.xaxis.set_tick_params(labelsize=20)
Esto hizo el truco y fue directo al grano. Para mi caso de uso, era la trama de la derecha que necesitaba ser ajustada. Para el gráfico de la izquierda, ya que estaba creando nuevas etiquetas de tictac, pude ajustar la fuente en el mismo proceso al establecer las etiquetas.
es decir
ax1.set_xticklabels(ax1_x, fontsize=15)
ax1.set_yticklabels(ax1_y, fontsize=15)
Así lo utilicé para la trama correcta,
ax2.xaxis.set_tick_params(labelsize=24)
ax2.yaxis.set_tick_params(labelsize=24)
Un menor sutilmente ... Lo sé ... pero espero que esto ayude a alguien :)
Puntos de bonificación si alguien sabe cómo ajustar el tamaño de fuente de la etiqueta de orden de magnitud.
Para especificar el tamaño de la fuente y la rotación al mismo tiempo, intente esto:
plt.xticks(fontsize=14, rotation=90)
Para fuentes más pequeñas, yo uso
ax1.set_xticklabels(xticklabels, fontsize=7)
¡y funciona!
También puede cambiar los parámetros de visualización de etiquetas como tamaño de fuente con una línea como esta:
zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()]
Tenga en cuenta que las versiones más recientes de MPL tienen un acceso directo para esta tarea. Un ejemplo se muestra en la otra respuesta a esta pregunta: https://.com/a/11386056/42346
El código a continuación es para propósitos ilustrativos y no necesariamente puede ser optimizado.
import matplotlib.pyplot as plt
import numpy as np
def xticklabels_example():
fig = plt.figure()
x = np.arange(20)
y1 = np.cos(x)
y2 = (x**2)
y3 = (x**3)
yn = (y1,y2,y3)
COLORS = (''b'',''g'',''k'')
for i,y in enumerate(yn):
ax = fig.add_subplot(len(yn),1,i+1)
ax.plot(x, y, ls=''solid'', color=COLORS[i])
if i != len(yn) - 1:
# all but last
ax.set_xticklabels( () )
else:
for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontsize(14)
# specify integer or one of preset strings, e.g.
#tick.label.set_fontsize(''x-small'')
tick.label.set_rotation(''vertical'')
fig.suptitle(''Matplotlib xticklabels Example'')
plt.show()
if __name__ == ''__main__'':
xticklabels_example()
plt.tick_params (axis = ''both'', which = ''minor'', labelsize = 12)