Bonsoir,

J'ai réalisé une animation d'un scatter plot matplotlib avec FuncAnimation. J'ai créé un tableau avec des coordonnées de longitude et latitude, cependant les points ne se placent pas en fonction de ces coordonnées dans le scatter plot, mais ils s'alignent sur une diagonale selon l'ordre des lignes de mon tableau. J'ai cherché à modifier différents paramètres de mon code, mais je n'arrive pas à trouver pourquoi cet alignement ce fait de cette manière.
Est-ce que quelqu'un aurait une piste pour résoudre ce problème.

Merci d'avance !

Mon code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
%matplotlib qt
 
#le nombre de frame qu'aura l'animation, ie le nombre de jours, ie, le nombre de colonne
frame_number = df.shape[1]-4 #nb de colonnes moins les 4 premières qui ne sont pas des jours
print("nb_colonnes=",frame_number)
 
#Créer la liste des étiquettes
Label=[]
for i in range(ligne):
>Label.append(df.loc[i][0])
#print("label=",Label)
 
 
#Definition du frame du scatter plot
fig = plt.figure(figsize=(10,10))
x=df['Long_deg']
y=df['Lat_deg']
ax = plt.axes()
 
plt.xlabel("Longitude (en degrés)")
plt.ylabel("Latitude (en degrés)")
plt.title("Deaths due to Covid by region : "+list_days[0],fontsize=15)
for i, label in enumerate(Label):
>plt.annotate(label, (df['Long_deg'][i], df['Lat_deg'][i]))
scatter=plt.scatter(x=df['Long_deg'],y=df['Lat_deg'],s=combine_dict[list_days_s[4]], color='red')
 
 
def update(frame_number): #frame_number = nb de jours
>for k in range(frame_number):
>>key=list_days_s[k]
>>scatter.set_sizes(combine_dict[key])
>>date=list_days[k]
>>plt.title("Deaths due to Covid19 : "+date,fontsize=15)
>return scatter,
 
anim = FuncAnimation(fig, update,frames=range(frame_number),interval=500)
plt.show()