"""Expande un bounding box con un margen proporcional.""" def extent_with_padding( bounds: tuple[float, float, float, float], pad_ratio: float = 0.05, ) -> tuple[float, float, float, float]: """Retorna un extent expandido con padding proporcional al tamano del bbox. El orden de salida es (minx, maxx, miny, maxy), conveniente para ejes de matplotlib. Args: bounds: tupla (minx, miny, maxx, maxy) del bounding box original. pad_ratio: fraccion del ancho/alto a anadir como margen por cada lado (por defecto 0.05). Returns: Tupla (minx - padx, maxx + padx, miny - pady, maxy + pady). """ minx, miny, maxx, maxy = bounds pad_x = (maxx - minx) * pad_ratio pad_y = (maxy - miny) * pad_ratio return (minx - pad_x, maxx + pad_x, miny - pad_y, maxy + pad_y)