Maison >développement back-end >Tutoriel Python >Pourquoi les valeurs de l'axe Y de Matplotlib ne sont-elles pas ordonnées ?

Pourquoi les valeurs de l'axe Y de Matplotlib ne sont-elles pas ordonnées ?

DDD
DDDoriginal
2024-10-24 11:27:29430parcourir

Why Are Matplotlib Y-Axis Values Not Ordered?

Pourquoi les valeurs de l'axe y de Matplotlib ne sont-elles pas ordonnées ?

Dans matplotlib, lorsque les valeurs de votre axe y apparaissent sous une forme inattendue et non ordonnée, il est probable en raison du type de données de ces valeurs. Souvent, ils sont tracés sous forme de chaînes au lieu de nombres.

Pour résoudre ce problème, convertissez vos données sur l'axe Y en flottants en les convertissant explicitement lors de la compréhension de la liste :

<code class="python">Solar = [float(line[1]) for line in I020]</code>

Au-delà des données conversion, il est également conseillé d'utiliser la capacité de formatage automatique de matplotlib pour l'axe des x lorsque vous travaillez avec des dates et des heures. Cette fonctionnalité ajuste automatiquement la rotation des étiquettes et d'autres aspects pour améliorer la lisibilité du graphique :

<code class="python">plt.gcf().autofmt_xdate()</code>

À des fins d'illustration, révisons le code fourni :

<code class="python">I020 = [line.strip('\n').split(",") for line in open('PV5sdata1.csv')][1:]
Time = [datetime.datetime.strptime(line[0], "%H%M%S%f") for line in I020]
Time1 = [mdates.date2num(line) for line in Time]
Solar = [float(line[1]) for line in I020]

fig, ax = plt.subplots()

ax.set_title('Solar data')
ax.set_xlabel('Time')
ax.set_ylabel('Solar')
ax.plot_date(Time1, Solar, 'k-')

hfmt = mdates.DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(hfmt)
plt.gcf().autofmt_xdate()

plt.show()</code>

Dans ce code modifié, nous déclarons la figure et les axes comme objets séparés (figue, hache). Cette approche offre plus de contrôle et de flexibilité lors de la personnalisation des attributs du tracé.

Le graphique résultant affiche des valeurs de l'axe Y bien ordonnées et un étiquetage amélioré de l'axe X :

[Image de l'axe Y ordonné et étiquetage amélioré de l'axe X]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn