Maison >développement back-end >Tutoriel Python >Pourquoi mes valeurs de l'axe Y de Matplotlib ne sont-elles pas ordonnées et comment y remédier ?
Les valeurs de l'axe y de Matplotlib ne sont pas ordonnées : une solution
Dans matplotlib, les valeurs de l'axe y peuvent apparaître non ordonnées lors du traçage des données d'un Fichier CSV. Pour résoudre ce problème, il est crucial de garantir que les données sont traitées sous forme de valeurs numériques plutôt que de chaînes.
Considérez le code suivant :
<code class="python">I020 = [ line.strip('\n').split(",") for line in open(r'D:\Users\a0476\Anaconda3\TickData\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 = [ line[1] for line in I020 ] # Convert y-axis data to floats Solar = [float(line[1]) for line in I020] xs = np.array(Time1) ys = np.array(Solar) fig, ax = plt.subplots() # using matplotlib's Object Oriented API ax.set_title('Solar data') ax.set_xlabel('Time') ax.set_ylabel('Solar') ax.plot_date(xs, ys, 'k-') hfmt = mdates.DateFormatter('%H:%M:%S') ax.xaxis.set_major_formatter(hfmt) plt.gcf().autofmt_xdate() plt.show()</code>
En convertissant les données de l'axe y (Solar ) en flottants, le code interprète correctement les valeurs comme numériques, conduisant à un axe y ordonné.
De plus, l'activation du formatage automatique de l'axe x (plt.gcf().autofmt_xdate()) améliore la disposition et la lisibilité de l'intrigue. Ceci est particulièrement bénéfique lorsqu’il s’agit de données de date/heure.
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!