.. info: pygmt.info ========== .. code:: pygmt.info(data, \*, per_column=None, spacing=None, nearest_multiple=None, verbose=None, aspatial=None, coltypes=None, incols=None, registration=None, \**kwargs) Obtenir des informations sur les tables de données. Lit les fichiers et trouve les valeurs extrêmes dans chacune des colonnes signalées sous forme de paires min/max. Il reconnaît les NaN et affichera des avertissements si le nombre de colonnes varie d'un enregistrement à l'autre. En option, il trouvera l'étendue des deux premières colonnes arrondie au multiple supérieur et inférieur le plus proche des incréments fournis donnés par `spacing`. Cette sortie sera sous une forme numpy.ndarray [ w , e , s , n ], qui peut être utilisée directement comme le paramètre `region` pour d'autres modules (par conséquent, seuls dx et dy sont nécessaires). Si le `per_column` paramètre est combiné avec `spacing`, alors la sortie numpy.ndarray sera arrondie vers le haut/vers le bas pour autant de colonnes qu'il y a d'incréments fournis dans `spacing`. Un paramètre similaire `nearest_multiple` fournira un numpy.ndarray sous la forme de [ zmin , zmax , dz ] pour makecpt. Paramètre --------- * **data** ( str ou numpy.ndarray ou pandas.DataFrame ou xarray.Dataset ou geopandas.GeoDataFrame ) – Transmettez soit un nom de fichier à une table de données ASCII, un 1-D/2-D `numpy.ndarray`, un `pandas.DataFrame`, un `xarray.Dataset` composé de 1- D `xarray.DataArray` variables de données, ou a `geopandas.GeoDataFrame` contenant les données tabulaires. * **per_column** ( bool ) – Rapporte les valeurs min/max par colonne dans des colonnes séparées. * **spacing** ( str ) – [ **b | p | f | s** ] dx [/ dy [/ dz …]]. Calculez les valeurs min/max des n premières colonnes au multiple le plus proche des incréments fournis [la valeur par défaut est 2 colonnes]. Par défaut, les résultats de sortie sont sous la forme , sauf si est défini, auquel cas nous publions chaque valeur min et max dans des colonnes de sortie séparées. `[w, e, s, n]` `per_column` * **nearest_multiple** ( str ) – **dz** [ **+c** col ]. Indiquez le min/max de la première (0'ème) colonne au multiple de dz le plus proche et affichez-le sous la forme .[zmin, zmax, dz] * **verbose** ( bool ou str ) – Sélectionnez le niveau de verbosité [la valeur par défaut est w ], qui module les messages écrits sur stderr. Choisissez parmi 7 niveaux de verbosité : - **q** - Des messages d'erreur silencieux, même fatals, ne sont pas générés - **e** - Messages d'erreur uniquement - **w** - Avertissements [par défaut] - **t** - Timings (temps d'exécution des rapports pour les algorithmes chronophages) - **i** - Messages d'information (comme `verbose=True`) - **c** - Avertissements de compatibilité - **d** - Messages de débogage * **aspatial** ( bool ou str ) – [ col =] nom [,…]. Contrôlez la manière dont les données aspatiales sont gérées lors de l'entrée et de la sortie. * **incols** ( str ou tableau 1-D ) – Spécifiez les colonnes de données pour l'entrée principale dans un ordre arbitraire. Les colonnes peuvent être répétées et les colonnes non répertoriées seront ignorées [par défaut, toutes les colonnes sont lues dans l'ordre, en commençant par la première (c'est-à-dire la colonne 0)]. - Pour un tableau 1-D : spécifiez les colonnes individuelles dans l'ordre d'entrée (par exemple, `incols=[1,0]` pour la 2ème colonne suivie de la 1ère colonne). - Pour str: spécifiez des colonnes individuelles ou des plages de colonnes au format start [: inc ]: stop , où inc prend par défaut la valeur 1 s'il n'est pas spécifié, avec des colonnes et/ou des plages de colonnes séparées par des virgules (par exemple, `incols="0:2,4+l"` pour saisir les trois premières colonnes suivies du 5e colonne transformée en log). Pour lire à partir d'une colonne donnée jusqu'à la fin de l'enregistrement, laissez off stop lors de la spécification de la plage de colonnes. Pour lire le texte de fin, ajoutez la colonne **t** . Ajoutez le numéro de mot à **t** pour ingérer un seul mot du texte de fin. Au lieu de spécifier des colonnes, utilisez `incols="n"` pour lire simplement l'entrée numérique et ignorer le texte de fin. Ajoutez éventuellement l'un des modificateurs suivants à n'importe quelle colonne ou plage de colonnes pour transformer les colonnes d'entrée : + **+l** pour prendre le log10 des valeurs d'entrée. + **+d** pour diviser les valeurs d'entrée par le facteur diviseur [la valeur par défaut est 1]. + **+s** pour multiplier les valeurs d'entrée par l' échelle des facteurs [la valeur par défaut est 1]. + **+o** pour ajouter le décalage donné aux valeurs d'entrée [la valeur par défaut est 0]. * **coltypes** ( str ) – [ **i | o** ] colinfo . Spécifiez les types de données des colonnes d'entrée et/ou de sortie (données temporelles ou géographiques). * **inscription** ( str ) – **g | p** . Forcer l'enregistrement du nœud quadrillage ( **g** ) ou pixel ( **p** ) [la valeur par défaut est **g** (ridline)]. Retour ------ **output** ( np.ndarray ou str ) – Le type de retour dépend si l'un des paramètres `per_column` , `spacing` ou `nearest_multiple` est défini. * `numpy.ndarray` si l'un des paramètres ci-dessus est utilisé. * str si aucun des paramètres ci-dessus n'est utilisé. Exemple ------- .. code :: import pandas as pd import pygmt # Load sample penguins data df = pd.read_csv("https://github.com/mwaskom/seaborn-data/raw/master/penguins.csv") # Convert 'species' column to categorical dtype # By default, pandas sorts the individual categories in an alphabetical order. # For a non-alphabetical order, you have to manually adjust the list of # categories. For handling and manipulating categorical data in pandas, # have a look at: # https://pandas.pydata.org/docs/user_guide/categorical.html df.species = df.species.astype(dtype="category") # Make a list of the individual categories of the 'species' column # ['Adelie', 'Chinstrap', 'Gentoo'] # They are (corresponding to the categorical number code) by default in # alphabetical order and later used for the colorbar annotations cb_annots = list(df.species.cat.categories) # Use pygmt.info to get region bounds (xmin, xmax, ymin, ymax) # The below example will return a numpy array like [30.0, 60.0, 12.0, 22.0] region = pygmt.info( data=df[["bill_length_mm", "bill_depth_mm"]], # x and y columns per_column=True, # report the min/max values per column as a numpy array # round the min/max values of the first two columns to the nearest multiple # of 3 and 2, respectively spacing=(3, 2), ) # Make a 2-D categorical scatter plot, coloring each of the 3 species # differently fig = pygmt.Figure() # Generate a basemap of 10 cm x 10 cm size fig.basemap( region=region, projection="X10c/10c", frame=[ "xafg+lBill length (mm)", "yafg+lBill depth (mm)", "WSen+tPenguin size at Palmer Station", ], ) # Define a colormap to be used for three categories, define the range of the # new discrete CPT using series=(lowest_value, highest_value, interval), # use color_model="+cAdelie,Chinstrap,Gentoo" to write the discrete color # palette "inferno" in categorical format and add the species names as # annotations for the colorbar pygmt.makecpt( cmap="inferno", # Use the minimum and maximum of the categorical number code # to set the lowest_value and the highest_value of the CPT series=(df.species.cat.codes.min(), df.species.cat.codes.max(), 1), # convert ['Adelie', 'Chinstrap', 'Gentoo'] to 'Adelie,Chinstrap,Gentoo' color_model="+c" + ",".join(cb_annots), ) fig.plot( # Use bill length and bill depth as x and y data input, respectively x=df.bill_length_mm, y=df.bill_depth_mm, # Vary each symbol size according to another feature (body mass, # scaled by 7.5*10e-5) size=df.body_mass_g * 7.5e-5, # Points colored by categorical number code fill=df.species.cat.codes.astype(int), # Use colormap created by makecpt cmap=True, # Do not clip symbols that fall close to the map bounds no_clip=True, # Use circles as symbols (the first "c") with diameter in # centimeters (the second "c") style="cc", # Set transparency level for all symbols to deal with overplotting transparency=40, ) # Add colorbar legend fig.colorbar() fig.show()