Bonjour,

J'ai une figure dont les coordonnées des abscisses vont de 0 à 360 et je voudrais la centrer sur 0 et non sur 180.
Le souci c'est que je n'arrive pas à décaler la matrice de points en même temps que les valeurs de l'axe des abscisses et donc les valeurs de la carte ne sont plus en adéquation avec ses coordonnées.
Ce n'est pas forcément clair, voilà le code :

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
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
data = 'goossens_datamap.csv' 
 
# importation de la matrice de données
contour_data = pd.read_csv(data, skiprows=0) # importation du fichier de données au format 3 colonnes x,y,z
contour_data.astype(float) 
Mat_d = contour_data.pivot_table(index='x', columns='y', values='z').T.values # conversion colonne => matrice 'numpy.ndarray'
 
# Création des valeurs de longitude et latitude
x = np.linspace(0, 360, np.shape(Mat_d)[1])
y = np.linspace(-90, 90, np.shape(Mat_d)[0])
 
#Affichage
implot = plt.imshow(Mat_d, extent=[x[0],x[-1],y[0],y[-1]], origin={'lower', 'lower'}, cmap='jet', interpolation='blackman')
plt.xlabel('Longitude [°]')
plt.ylabel('Latitude [°]')
 
plt.show()
Est-il possible de décaler toute la carte de 180x ? (cela revient concrètement à inverser les deux moitiés droite et gauche de la carte, ce qui peut être un début de solution : bidouiller les données de départ, pas très élégant mais incontestablement efficace)

Vous noterez que je crée un peu 'artificiellement' les x et y alors qu'il sont aussi contenus dans les 1ère et 2ème colonnes du fichier d'origine.

Merci.
- M.