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 :
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
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()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.
Partager