Он все!
Я делаю простой 2-мерный график с данными.
Ошибки
- У меня есть файл csv, из которого я извлекаю данные, и когда я показываю график, все в порядке. Но если я добавлю .scatter, он просто покажет тот, который я добавил. (например, вы нашли новую вещь и хотите сравнить ее с вашей базой данных, добавив ее на график)
- Ось Y не в порядке возрастания ..
Мой код:
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
def faireGraph(fichierCsv):
with open(fichierCsv) as fichierCsv:
ligneFin = [ligne.rstrip().rsplit(',') for ligne in fichierCsv.readlines()]
xLabel = ligneFin[0][0]
yLabel = ligneFin[0][1]
xCoord = []
for i in range(1, len(ligneFin)):
xCoord.append((float(ligneFin[i][0]), i))
xCoord.sort(key = lambda x:x[0])
yCoord = [ligne[1] for ligne in ligneFin[1:]]
toutesEspeces = []
for j in range(1, len(ligneFin)):
toutesEspeces.append(ligneFin[xCoord[j - 1][1]][2])
for i in range(len(xCoord)):
if toutesEspeces[i] == 'setosa':
plt.scatter(xCoord[i][0], yCoord[xCoord[i][1] - 1], c='blue')
if toutesEspeces[i] == 'versicolor':
plt.scatter(xCoord[i][0], yCoord[xCoord[i][1] - 1], c='red')
if toutesEspeces[i] == 'virginica':
plt.scatter(xCoord[i][0], yCoord[xCoord[i][1] - 1], c='green')
choixAjtValeur = input("Voulez vous ajouter une valeur à votre tableau ? oui ou non ? (o/n): ")
rougeLegend = mpatches.Patch(color='red', label='versicolor')
bleuLegend = mpatches.Patch(color='blue', label='setosa')
vertLegend = mpatches.Patch(color='green', label='virginica')
if choixAjtValeur == "o":
ajtCoodX = float(input("Coordonée x: "))
ajtCoodY = float(input("Coordonée y: "))
plt.scatter(ajtCoodX, ajtCoodY, color = "black")
inconnuLegend = mpatches.Patch(color='black', label='inconnu')
plt.legend(handles=[vertLegend, rougeLegend, bleuLegend, inconnuLegend])
else:
plt.legend(handles=[vertLegend, rougeLegend, bleuLegend])
plt.xlabel(xLabel)
plt.ylabel(yLabel)
print("Affichage du graphique en cours...")
plt.show()
oui = "iris_2D.csv"
faireGraph(oui)
Любая помощь будет драгоценна, спасибо!