Pregunta

Por lo tanto, parece que no se puede hacer lo siguiente (se genera un error, ya que axes no tiene 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 utilizar el siguiente truco de edad en su lugar:

rcParams['axes.linewidth'] = 5 # set the value globally

... # some code

rcdefaults() # restore [global] defaults

¿Hay una manera fácil / limpia (puede ser uno puede establecer los parámetros de ejes x- y y- individual, etc.)?

P.S. Si no, ¿por qué?

¿Fue útil?

Solución

La respuesta anterior no funciona, como se explica en los comentarios. Sugiero a las espinas de uso.

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

Otros consejos

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

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

Llamando ' axhline ' y ' axvline ' de una instancia eje parece ser la técnica respaldado en la documentación de MPL.

En cualquier caso, es simple y permite un control preciso sobre la aparición de los ejes.

Así, por ejemplo, este código se creará una trama y el color de la eje X verde y aumentar la anchura de la línea del eje x desde un valor predeterminado de "1" a un valor de "4"; el eje y es de color rojo y el ancho de línea del eje y se aumenta 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ía permitir que lo hace cualquier casi todo lo que desea estéticamente, en particular, ninguna de las propiedades ~ matplotlib.lines.Line2D son kwargs válidos (por ejemplo, 'alfa', 'estilo de línea' , capstyle, joinstyle).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top