Maison  >  Article  >  développement back-end  >  Pourquoi mes valeurs de l'axe Y de Matplotlib ne sont-elles pas ordonnées et comment y remédier ?

Pourquoi mes valeurs de l'axe Y de Matplotlib ne sont-elles pas ordonnées et comment y remédier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 09:47:02706parcourir

Why Are My Matplotlib Y-Axis Values Unordered and How to Fix It?

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!

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