Files
fn_registry/python/functions/datascience/plot_heatmap_log.md
T
egutierrez dabc945eda feat: extraccion masiva footprint_aurgi (41 funcs + 4 types + stack Docker geo)
Extrae al registry funciones del proyecto interno footprint_aurgi:
- core (6): slugify_ascii, normalize_for_join, cp_provincia_es, infer_provincia_from_cp, safe_read_csv_fallback, csv_to_parquet_duckdb
- geo puras (7): haversine_km, point_in_ring, point_in_polygon, point_in_polygons_bbox, polygon_bbox, extent_with_padding, distance_bucket
- geo I/O (4): load_geojson_polygons, load_boundary_gdf, add_basemap_osm, add_basemap_with_timeout
- valhalla client (4): valhalla_route, valhalla_isochrone, valhalla_isochrones_async, valhalla_matrix_1_to_n
- datascience stats (7): trimmed_mean, geometric_mean, detect_distribution_type, best_central_tendency, summary_stats, kde_density_levels, alpha_shape_concave_hull
- datascience fuzzy (3): fuzzy_merge_adaptive (rapidfuzz), words_to_dataset, remove_words_from_column
- datascience viz (2): plot_kde_2d, plot_heatmap_log
- infra (4): compress_pdf_ghostscript, render_table_page_pdfpages, add_header_logo, osm2pgsql_ingest
- pipelines (4): setup_geo_stack_docker, compute_centers_reachability, generate_isochrones_by_zone, count_points_per_zone
- types geo (4): LonLat, BBox, IsochroneRequest, Centro

Incluye:
- apps/footprint_geo_stack/ (PostGIS + Martin + Valhalla via docker-compose)
- 131/132 tests pasan (1 skip esperado: osm2pgsql en PATH)
- Issue tracker dev/issues/0052-footprint-aurgi-extraction.md
- Atribucion uniforme: source_repo internal:footprint_aurgi, source_license internal-aurgi
- Build con 9 agentes en paralelo (8 wave 1 + 1 wave 2 pipelines)

Tambien commitea trabajo previo no commiteado: aggregate_extraction_results, chunk_with_overlap, clean_pdf_text, merge_entity_aliases, extract_graph_gliner2, extract_relations_mrebel, extract_triples_spacy_es, gliner2/mrebel/marianmt/rebel/spacy_es load_model, parse_rebel_output, translate_es_to_en, issue 0050/0051.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 23:35:22 +02:00

2.3 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path, source_repo, source_license, source_file
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path source_repo source_license source_file
plot_heatmap_log function py datascience 1.0.0 impure def plot_heatmap_log(ax: Axes, xs: list[float] | np.ndarray, ys: list[float] | np.ndarray, extent: tuple[float, float, float, float], bins: int = 200, cmap: str = 'hot', alpha: float = 0.6) -> None Dibuja un heatmap 2D con escala log1p sobre un Axes de matplotlib. Usa np.histogram2d con el extent dado y ax.imshow para renderizar.
visualization
heatmap
histogram
matplotlib
datascience
log
false error_go_core
numpy
matplotlib
name desc
ax matplotlib Axes sobre el que se dibuja el heatmap.
name desc
xs Coordenadas X de los puntos.
name desc
ys Coordenadas Y de los puntos.
name desc
extent Bounding box como (minx, maxx, miny, maxy) que define el rango del histograma.
name desc
bins Número de bins del histograma en cada eje. Default 200.
name desc
cmap Nombre del colormap de matplotlib. Default 'hot'.
name desc
alpha Opacidad del overlay (0-1). Default 0.6.
None. Modifica el Axes in-place añadiendo el heatmap como imagen con ax.imshow. true
100 puntos no lanza excepción
ax tiene al menos una imagen tras la llamada
python/functions/datascience/tests/test_plot_heatmap_log.py python/functions/datascience/plot_heatmap_log.py internal:footprint_aurgi internal-aurgi zonas_mapas_aurgi/examples/generar_reporte_madrid.py:62

Ejemplo

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
from datascience.plot_heatmap_log import plot_heatmap_log

rng = np.random.default_rng(42)
xs = rng.uniform(-4.0, -3.5, 500)
ys = rng.uniform(40.3, 40.6, 500)

fig, ax = plt.subplots()
plot_heatmap_log(ax, xs, ys, extent=(-4.0, -3.5, 40.3, 40.6), bins=100)
fig.savefig("heatmap.png")

Notas

Aplica np.log1p a las cuentas del histograma para comprimir el rango dinámico y hacer visibles tanto zonas densas como dispersas. El histograma se transpone (counts.T) antes de pasar a imshow para alinear correctamente los ejes x/y. aspect="auto" permite que la imagen se estire al aspecto del Axes.