Pergunta

Quando eu traçar dados amostrados por mês, com bares, sua largura é muito fina. Se eu definir X eixo localizador menor a DayLocator (), eu posso ver as barras de largura é ajustada para 1 dia, mas eu gostaria que eles para preencher um mês inteiro.

Eu tentei definir o menor carrapatos localizador para MonthLocator () sem efeito.

[editar]

Talvez um exemplo vai ser mais explícito, aqui está um exemplo ipython -pylab do que quero dizer:

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)

Isto dá 12 2 pixels barras largas, gostaria que eles sejam mais ampla e estender de mês para mês.

Foi útil?

Solução

Basta usar o argumento width palavra-chave:

bar(x, y, width=30)

Ou, uma vez que diferentes meses têm números diferentes de dias, para torná-lo uma boa aparência você pode usar uma seqüência:

bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top