Eu tenho uma matriz de carimbos de data / hora no formato (HH: MM: SS.mmmmmm) e outra matriz de números de ponto flutuante, cada um correspondendo a um valor na matriz de carimbo de data / hora.
Posso plotar o tempo no eixo x e os números no eixo y usando o Matplotlib?
Eu estava tentando, mas de alguma forma estava aceitando apenas matrizes de carros alegóricos. Como posso fazer isso para traçar o tempo? Preciso modificar o formato de alguma forma?
python
graph
plot
matplotlib
pensamento aleatório
fonte
fonte
scatter_date()
e nenhuma maneira óbvia / direta de obter esse gráfico.Você também pode plotar o timestamp, pares de valores usando pyplot.plot (depois de analisá- los a partir de suas representações de cadeias). (Testado com as versões 1.2.0 e 1.3.1 do matplotlib.)
Exemplo:
Imagem resultante:
Aqui está o mesmo que um gráfico de dispersão:
Produz uma imagem semelhante a esta:
fonte
plot
parascatter
).Type Error - invalid type promotion
.datetime.datetime
objetos no eixo x na minha postagem.plt.grid(True)
matplotlib.__version__
2.2.2. No entanto, o gráfico de dispersão possui alguns limites x excessivamente amplos definidos por padrão. Esta resposta parece fornecer uma solução que não seja ajustando manualmenteplt.xlim(...)
: stackoverflow.com/a/46467896/10253917 anos depois e esse código me ajudou. No entanto, meus horários ainda não estavam aparecendo corretamente.
Usando o Matplotlib 2.0.0 e eu tive que adicionar o seguinte bit de código em Editando a formatação de data dos rótulos de marcação do eixo x no matplotlib por Paul H.
Alterei o formato para (% H:% M) e a hora exibida corretamente.
Tudo graças à comunidade.
fonte
Eu tive problemas com isso usando a versão matplotlib: 2.0.2. Executando o exemplo acima, recebi um conjunto centralizado de bolhas empilhadas.
Corrigi o problema adicionando outra linha:
Todo o snippet de código se torna:
Isso produz uma imagem com as bolhas distribuídas conforme desejado.
fonte