J'ai un tableau d'horodatages au format (HH: MM: SS.mmmmmm) et un autre tableau de nombres à virgule flottante, chacun correspondant à une valeur dans le tableau d'horodatage.
Puis-je tracer le temps sur l'axe x et les nombres sur l'axe y en utilisant Matplotlib?
J'essayais, mais d'une manière ou d'une autre, il n'acceptait que des tableaux de flotteurs. Comment puis-je lui faire tracer l'heure? Dois-je modifier le format de quelque manière que ce soit?
python
graph
plot
matplotlib
au hasard
la source
la source
scatter_date()
, ni de moyen évident / direct d'obtenir ce graphique.Vous pouvez également tracer l'horodatage, les paires de valeurs à l'aide de pyplot.plot (après les avoir analysées à partir de leur représentation sous forme de chaîne). (Testé avec les versions 1.2.0 et 1.3.1 de matplotlib.)
Exemple:
Image résultante:
Voici la même chose qu'un nuage de points:
Produit une image similaire à celle-ci:
la source
plot
enscatter
).Type Error - invalid type promotion
.datetime.datetime
objets sur l'axe des x à mon message.plt.grid(True)
matplotlib.__version__
2.2.2. Le nuage de points a cependant des limites x trop larges définies par défaut. Cette réponse semble fournir une solution de contournement autre que l'ajustement manuelplt.xlim(...)
: stackoverflow.com/a/46467896/10253917 ans plus tard et ce code m'a aidé. Cependant, mes temps ne s'affichaient toujours pas correctement.
En utilisant Matplotlib 2.0.0 et j'ai dû ajouter le bit de code suivant de Modification du formatage de la date des étiquettes de graduation de l' axe des x dans matplotlib par Paul H.
J'ai changé le format en (% H:% M) et l'heure affichée correctement.
Tout cela grâce à la communauté.
la source
J'ai eu des problèmes avec cela en utilisant la version matplotlib: 2.0.2. En exécutant l'exemple ci-dessus, j'ai obtenu un ensemble de bulles empilées centrées.
J'ai "corrigé" le problème en ajoutant une autre ligne:
L'extrait de code complet devient:
Cela produit une image avec les bulles réparties comme souhaité.
la source