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!