style rcparams font python matplotlib plot graphing

python - font - Configurando `axes.linewidth` sin cambiar el dictado global de` rcParams`



plt rc font size (3)

Entonces, parece que uno no puede hacer lo siguiente (genera un error, ya que los axes no tienen un método set_linewidth ):

axes_style = {''linewidth'':5} axes_rect = [0.1, 0.1, 0.9, 0.9] axes(axes_rect, **axes_style)

y tiene que usar el siguiente viejo truco en su lugar:

rcParams[''axes.linewidth''] = 5 # set the value globally ... # some code rcdefaults() # restore [global] defaults

¿Hay una forma fácil / limpia (puede ser que uno pueda configurar los parámetros de los ejes x e y individualmente, etc.)?

PS Si no, ¿por qué?


La respuesta anterior no funciona, como se explica en los comentarios. Sugiero usar espinas.

import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) # you can change each line separately, like: #ax.spines[''right''].set_linewidth(0.5) # to change all, just write: for axis in [''top'',''bottom'',''left'',''right'']: ax.spines[axis].set_linewidth(0.5) plt.show() # see more about spines at: #http://matplotlib.org/api/spines_api.html #http://matplotlib.org/examples/pylab_examples/multiple_yaxis_with_spines.html


Sí, hay una manera fácil y limpia de hacer esto.

Llamar '' axhline '' y '' axvline '' desde una instancia de eje parece ser la técnica respaldada en la Documentación MPL.

En cualquier caso, es simple y le da un control preciso sobre la apariencia de los ejes.

Entonces, por ejemplo, este código creará una gráfica y coloreará el eje x verde y aumentará el ancho de línea del eje x desde un valor predeterminado de "1" hasta un valor de "4"; el eje y está coloreado de rojo y el ancho de línea del eje y se incrementa de "1" a "8".

from matplotlib import pyplot as PLT fig = PLT.figure() ax1 = fig.add_subplot(111) ax1.axhline(linewidth=4, color="g") # inc. width of x-axis and color it green ax1.axvline(linewidth=4, color="r") # inc. width of y-axis and color it red PLT.show()

La función axhline / axvline acepta argumentos adicionales que deberían permitirte hacer lo que quieras estéticamente, en particular cualquiera de las propiedades ~ matplotlib.lines.Line2D son kwargs válidos (por ejemplo, ''alpha'', ''linestyle'', capstyle, joinstyle).


plt.setp(ax.spines.values(), linewidth=5)