{ "cells": [ { "cell_type": "markdown", "id": "b2140b01-8d31-42a4-8e24-55554e7e8330", "metadata": {}, "source": [ "# Dynamic Text Positioning with Repel Geometries\n", "\n", "- `geom_text_repel()`\n", "- `geom_label_repel()`\n", "\n", "These functions use a force-based layout algorithm to automatically reposition text labels and resolve overlaps. \n", "\n", "Labels repel each other and their associated data points while staying within the plot boundaries." ] }, { "cell_type": "code", "execution_count": 1, "id": "34f575a0-f8e0-429c-8294-6bd2a4a30e00", "metadata": {}, "outputs": [], "source": [ "import random\n", "\n", "import pandas as pd\n", "\n", "from lets_plot import *" ] }, { "cell_type": "code", "execution_count": 2, "id": "b9b2146f-bc73-4bab-ae23-225c68729760", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "LetsPlot.setup_html()" ] }, { "cell_type": "code", "execution_count": 3, "id": "50f4ffd6-e3d4-4c21-ae02-f396cba7ada1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(32, 12)\n" ] }, { "data": { "text/html": [ "| \n", " | model | \n", "mpg | \n", "cyl | \n", "disp | \n", "hp | \n", "drat | \n", "wt | \n", "qsec | \n", "vs | \n", "am | \n", "gear | \n", "carb | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "Mazda RX4 | \n", "21.0 | \n", "6 | \n", "160.0 | \n", "110 | \n", "3.90 | \n", "2.620 | \n", "16.46 | \n", "0 | \n", "1 | \n", "4 | \n", "4 | \n", "
| 1 | \n", "Mazda RX4 Wag | \n", "21.0 | \n", "6 | \n", "160.0 | \n", "110 | \n", "3.90 | \n", "2.875 | \n", "17.02 | \n", "0 | \n", "1 | \n", "4 | \n", "4 | \n", "
| 2 | \n", "Datsun 710 | \n", "22.8 | \n", "4 | \n", "108.0 | \n", "93 | \n", "3.85 | \n", "2.320 | \n", "18.61 | \n", "1 | \n", "1 | \n", "4 | \n", "1 | \n", "
| 3 | \n", "Hornet 4 Drive | \n", "21.4 | \n", "6 | \n", "258.0 | \n", "110 | \n", "3.08 | \n", "3.215 | \n", "19.44 | \n", "1 | \n", "0 | \n", "3 | \n", "1 | \n", "
| 4 | \n", "Hornet Sportabout | \n", "18.7 | \n", "8 | \n", "360.0 | \n", "175 | \n", "3.15 | \n", "3.440 | \n", "17.02 | \n", "0 | \n", "0 | \n", "3 | \n", "2 | \n", "