{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "ed7c1d01-d655-4878-a27d-c6d0e330097b", "metadata": {}, "outputs": [], "source": [ "import panel as pn\n", "import pandas as pd\n", "\n", "pn.extension()" ] }, { "cell_type": "markdown", "id": "ea1bc3ca-f83c-48e5-8046-7a4341ed835d", "metadata": {}, "source": [ "The `Swipe` layout enables you to quickly compare two panels laid out on top of each other with a part of the *before* panel shown on one side of a slider and a part of the *after* panel shown on the other side.\n", "\n", "#### Parameters:\n", "\n", "* **`end`** (int): Limits the maximum percentage the swipe handler can be moved to.\n", "* **`objects`** (list): The before and after components to lay out.\n", "* **`start`** (int): Limits the minimum percentage the swipe handler can be moved to.\n", "* **`value`** (int): The percentage of the *after* panel shown. Default is 50.\n", "\n", "Styling-related parameters:\n", "\n", "* **`slider_width`** (int): The width of the slider in pixels. Default is 12.\n", "* **`slider_color`** (str): The color of the slider. Default is 'black'.\n", "\n", "For further layout and styling-related parameters see the [Control the size](../../tutorials/basic/size.md), [Align Content](../../tutorials/basic/align.md) and [Style](../../tutorials/basic/style.md) tutorials.\n", "\n", "---" ] }, { "cell_type": "markdown", "id": "5613561d-d483-45df-8cbb-366abbb96e79", "metadata": {}, "source": [ "The `Swipe` layout accepts any two objects, which must have identical sizing options to work as intended.\n", "\n", "Here we compare two images of mean surface temperatures in 1945-1949 and temperatures between 2015-2019:" ] }, { "cell_type": "code", "execution_count": null, "id": "07cdc635-9642-4335-9862-d8195dadade7", "metadata": {}, "outputs": [], "source": [ "gis_1945 = 'https://earthobservatory.nasa.gov/ContentWOC/images/globaltemp/global_gis_1945-1949.png'\n", "gis_2015 = 'https://earthobservatory.nasa.gov/ContentWOC/images/globaltemp/global_gis_2015-2019.png'\n", "\n", "pn.Swipe(gis_1945, gis_2015)" ] }, { "cell_type": "markdown", "id": "9af72676-c50d-4c61-820d-048daf8872e9", "metadata": {}, "source": [ "The layout can compare any type of component, e.g. here we will compare two violin plots:" ] }, { "cell_type": "code", "execution_count": null, "id": "c6187cb3-21a1-4900-be93-02ce3e480ff4", "metadata": {}, "outputs": [], "source": [ "import hvplot.pandas\n", "\n", "penguins = pd.read_csv('https://datasets.holoviz.org/penguins/v1/penguins.csv')\n", "\n", "pn.Swipe(\n", " penguins[penguins.species=='Chinstrap'].hvplot.violin('bill_length_mm', color='#00cde1'),\n", " penguins[penguins.species=='Adelie'].hvplot.violin('bill_length_mm', color='#cd0000'),\n", " value=51\n", ")" ] }, { "cell_type": "markdown", "id": "8fba9d29-fc6f-4b13-889f-189f10a5ac4c", "metadata": {}, "source": [ "We may also limit the minimum and maximum percentage the swipe handle can be dragged to using the `start` and `stop` values:" ] }, { "cell_type": "code", "execution_count": null, "id": "1ecc584a-fae8-45d8-90f5-22a1d980a065", "metadata": {}, "outputs": [], "source": [ "pn.Swipe(f\"|{'-'*100}|\", f\"|{'='*100}|\", start=20, end=80)" ] } ], "metadata": { "language_info": { "name": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 5 }