Domanda

Quando ho tracciare dati campionati al mese con le barre, la loro larghezza è molto sottile. Se ho impostato asse X localizzatore minore a DayLocator (), posso vedere larghezza è regolata a 1 giorno di bar, ma vorrei loro di compilare un mese intero.

Ho cercato di impostare il localizzatore zecche minore MonthLocator () senza effetto.

[modifica]

Forse un esempio sarà più esplicito, ecco un esempio ipython -pylab di ciò che intendo:

x = [datetime.datetime(2008, 1, 1, 0, 0),
    datetime.datetime(2008, 2, 1, 0, 0),
    datetime.datetime(2008, 3, 1, 0, 0),
    datetime.datetime(2008, 4, 1, 0, 0),
    datetime.datetime(2008, 5, 1, 0, 0),
    datetime.datetime(2008, 6, 1, 0, 0),
    datetime.datetime(2008, 7, 1, 0, 0),
    datetime.datetime(2008, 8, 1, 0, 0),
    datetime.datetime(2008, 9, 1, 0, 0),
    datetime.datetime(2008, 10, 1, 0, 0),
    datetime.datetime(2008, 11, 1, 0, 0),
    datetime.datetime(2008, 12, 1, 0, 0)]

y = cos(numpy.arange(12) * 2)

bar(x, y)

Questo dà 12 2 pixel di larghezza bar, vorrei loro di essere più ampio ed estendere di mese in mese.

È stato utile?

Soluzione

Basta usare il width parola chiave argomento:

bar(x, y, width=30)

In alternativa, dal momento che diversi mesi hanno un diverso numero di giorni, per farlo sembrare buono si può utilizzare una sequenza:

bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30])
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top