def layoutcol(sizes, x, y, dx, dy):
    """
    Generate rectangle dimensions for each size in sizes when remaining height
    exceeds remaining width (dx < dy). Rectangles will fill up width dx,
    and height will be determined by their area. Sizes should be pre-normalized
    with respect to dx * dy (i.e., they should be same units)

    :param sizes: List of values normalized with respect to overall height (dy)
        and width values (dx)
    :param x: Rectangle start point on treemap x-axis
    :param y: Rectangle start point on treemap y-axis
    :param dx: Remaining treemap width
    :param dy: Remaining treemap height
    :return: List of dictionaries of rectangle dimensions
    """
    covered_area = sum(sizes)
    height = covered_area / dx
    rects = []
    for size in sizes:
        rects.append({'x': x, 'y': dy - height, 'dx': size / height, 'dy':
            height})
        x += size / height
    return rects
