Domanda

Quindi, a quanto pare non si può fare quanto segue (che genera un errore, dal momento che axes non ha un metodo set_linewidth):

axes_style = {'linewidth':5}
axes_rect = [0.1, 0.1, 0.9, 0.9]

axes(axes_rect, **axes_style)

e deve utilizzare il seguente vecchio trucco, invece:

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

... # some code

rcdefaults() # restore [global] defaults

C'è un modo semplice / pulito (potrebbe essere uno può impostare x- e y- assi parametri singolarmente, ecc)?

P.S. Se no, perché?

È stato utile?

Soluzione

La risposta di cui sopra non funziona, come è spiegato nei commenti. Suggerisco di usare spine.

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

Altri suggerimenti

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

Sì, c'è un modo semplice e pulito per fare questo.

Calling ' axhline ' e ' axvline ' da un'istanza asse sembra essere la tecnica approvata nella Documentazione MPL.

In ogni caso, è semplice e ti dà il controllo a grana fine sull'aspetto degli assi.

Così, per esempio, questo codice crea una trama e colorare l'asse x verde e aumentare la larghezza della linea del asse x da un valore predefinito di "1" per un valore di "4"; l'asse y è colorato in rosso e la larghezza della linea di asse y è aumentato da "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 funzione axhline / axvline accetta argomenti aggiuntivi che dovrebbero permettere di fare qualsiasi più o meno quello che vuoi esteticamente, in particolare, una delle proprietà ~ matplotlib.lines.Line2D sono kwargs validi (ad esempio, 'alpha', 'linestyle' , capstyle, joinstyle).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top