我试图计算 Dataframe ,然后绘制并保存在同一个循环中,但我很难以正确的方式命名它们。
我试过:
df_jour = [janvier_jour, fevrier_jour, mars_jour, avril_jour, mai_jour, juin_jour, juillet_jour, aout_jour, septembre_jour, octobre_jour, novembre_jour, decembre_jour]
df_nuit = [janvier_nuit, fevrier_nuit, mars_nuit, avril_nuit, mai_nuit, juin_nuit, juillet_nuit, aout_nuit, septembre_nuit, octobre_nuit, novembre_nuit, decembre_nuit]
NAME_jour = {"en janvier de jour", "en février de jour", "en mars de jour", "en avril de jour", "en mai de jour", "en juin de jour", "en juillet de jour", "en août de jour", "en septembre de jour", "en octobre de jour", "en novembre de jour", "en décembre de jour"}
NAME_nuit = {"en janvier de nuit", "en février de nuit", "en mars de nuit", "en avril de nuit", "en mai de nuit", "en juin de nuit", "en juillet de nuit", "en août de nuit", "en septembre de nuit", "en octobre de nuit", "en novembre de nuit", "en décembre de nuit"}
for df in df_jour:
df_clean = df.drop(columns = ["Moyennes", "Medianes", "écart-type"], axis=1).mean(axis=0).values
print(df_clean)
carte = np.reshape(df_clean, (8, 19))
for name in NAME_jour:
print(name)
#plot
ax = plt.imshow(carte, cmap='plasma')
plt.title("Température moyenne {NAME_jour}".format(name))
#légende
cbar = plt.colorbar(location="bottom", label ="température en kelvin", fraction = 0.10)
#grille
plt.grid(False)
#Sauvegarde de la figure en sortie
plt.savefig('/mnt/Data/30_Stages_Encours/2023/ZonesHumides_Sarah/donnee_traitee/thermique/cartes/MOD{}.png').format(i)
一个df看起来像这样:
[ nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
nan nan nan nan nan nan nan
281.93066 281.93066 281.9625 281.9625 nan nan nan
nan nan nan nan nan nan 282.25616
nan nan 282.13797 282.13797 282.0449 282.0405 282.0405
282.16513 282.18546 282.18546 nan nan nan nan
282.16705 282.0923 nan nan 282.26132 282.12674 282.12674
nan nan 282.2211 282.21896 282.21896 282.43152 282.51382
282.51382 282.46732 282.46732 nan nan nan nan
282.03323 282.03323 282.1428 282.3119 282.3119 282.31226 282.31226
282.32877 282.38373 282.38373 282.69778 282.70245 282.70245 282.56158
282.56158 282.46973 nan nan nan nan nan
282.41928 282.58136 282.58136 282.75327 282.6079 282.6079 282.47507
282.47507 282.69797 282.89523 282.89523 282.8569 282.7391 nan
nan nan nan nan nan nan 282.71594
282.71594 282.8112 282.74515 282.74515 282.64297 282.64297 nan
282.9823 282.9823 nan nan nan]
这给我带来了一个关键错误。
我希望我的标题和输出来自NAME_jour列表,与我的 Dataframe 具有相同的索引。这也不会起作用,因为它将以列表的最后一个元素命名。我试着用enumerate在同一个循环中做所有的事情,但不知道如何用其他东西枚举,然后是0,1,2,3...
我试过:
df_jour = [janvier_jour, fevrier_jour, mars_jour, avril_jour, mai_jour, juin_jour, juillet_jour, aout_jour, septembre_jour, octobre_jour, novembre_jour, decembre_jour]
df_nuit = [janvier_nuit, fevrier_nuit, mars_nuit, avril_nuit, mai_nuit, juin_nuit, juillet_nuit, aout_nuit, septembre_nuit, octobre_nuit, novembre_nuit, decembre_nuit]
NAME_jour = {"en janvier de jour", "en février de jour", "en mars de jour", "en avril de jour", "en mai de jour", "en juin de jour", "en juillet de jour", "en août de jour", "en septembre de jour", "en octobre de jour", "en novembre de jour", "en décembre de jour"}
NAME_nuit = {"en janvier de nuit", "en février de nuit", "en mars de nuit", "en avril de nuit", "en mai de nuit", "en juin de nuit", "en juillet de nuit", "en août de nuit", "en septembre de nuit", "en octobre de nuit", "en novembre de nuit", "en décembre de nuit"}
for i,df in enumerate(df_jour):
df_clean = df.drop(columns = ["Moyennes", "Medianes", "écart-type"], axis=1).mean(axis=0).values
carte = np.reshape(df_clean, (8, 19))
#vide le plot
plt.clf()
#plot
ax = plt.imshow(carte, cmap='plasma')
plt.title("Température moyenne " + str(NAME_jour[i]))
#légende
cbar = plt.colorbar(location="bottom", label ="température en kelvin", fraction = 0.10)
#grille
plt.grid(False)
#Sauvegarde de la figure en sortie
path = '/mnt/Data/30_Stages_Encours/2023/ZonesHumides_Sarah/donnee_traitee/thermique/cartes/MOD' + str(NAME_jour[i]) + '.png'
plt.savefig(path)
但是我在这一行得到了这个错误“plt.title(“Température moyenne“+ str(NAME_jour[i])”:
TypeError: 'set' object is not subscriptable
1条答案
按热度按时间nkcskrwz1#
这很好: