{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7537fe2a",
   "metadata": {},
   "source": [
    "# Visualization and Pandas\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e7812349",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:43.395909Z",
     "iopub.status.busy": "2026-08-31T06:00:43.395660Z",
     "iopub.status.idle": "2026-08-31T06:00:43.787588Z",
     "shell.execute_reply": "2026-08-31T06:00:43.787307Z"
    },
    "tags": [
     "hide-input",
     "thebe-init",
     "runnable"
    ]
   },
   "outputs": [],
   "source": [
    "# %pip install pandas numpy     ### ensure pandas and numpy are installed; uncomment when done\n",
    "# %pip install matplotlib       ### ensure matplotlib is installed; uncomment when done\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt ### because pandas.plot is still matplotlib\n",
    "# %matplotlib inline            ### uncomment if using Jupyter Notebook\n",
    "                                ### unless using Jupyter < 7\n",
    "                                ### use plt.show() to display plots in other environments  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6eae939a",
   "metadata": {},
   "source": [
    "```{contents}\n",
    ":local:\n",
    ":depth: 2\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c1909e9",
   "metadata": {},
   "source": [
    "<!-- moved-from-landing: 0500-visualization -->\n",
    "\n",
    "## Visualization Orientation\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "23fb609a",
   "metadata": {},
   "source": [
    "Dr. Andrew Abela created this chart chooser visualization in 2013. The four-dimension chart categorization offer great insight when choosing visualizations. \n",
    "\n",
    "```{figure} ../../figures/andrew-abela-chart-chooser.jpg\n",
    ":name: andrew-abela-chart-chooser\n",
    ":width: 90%\n",
    ":align: center\n",
    "\n",
    "[Andrew Abela Chart Chooser](https://datavizblog.com/2013/04/29/andrew-abelas-chart-chooser/)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9feb4359",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:43.788958Z",
     "iopub.status.busy": "2026-08-31T06:00:43.788863Z",
     "iopub.status.idle": "2026-08-31T06:00:44.784048Z",
     "shell.execute_reply": "2026-08-31T06:00:44.783776Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce5f1e42",
   "metadata": {},
   "source": [
    "### Overview\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c507c08",
   "metadata": {},
   "source": [
    "**Data visualization** is the art and science of transforming raw numbers into compelling visual stories. While spreadsheets and statistical summaries provide precise information, visualizations reveal patterns, relationships, and insights that would remain hidden in tables of data. \n",
    "\n",
    "Imagine trying to understand weather patterns from thousands of temperature readings versus seeing them plotted as a line graph over time—the visual immediately shows trends, seasonal cycles, and anomalies that numbers alone cannot convey.\n",
    "\n",
    "<!-- **The Visualization Landscape**\n",
    "\n",
    "While this course focuses on Python, it's valuable to understand the broader visualization ecosystem. Different tools serve different purposes:\n",
    "\n",
    "Python Libraries:\n",
    "\n",
    "- **Matplotlib**: The foundational library providing complete control and customization\n",
    "- **Seaborn**: Built on Matplotlib, offering beautiful statistical plots with simpler syntax\n",
    "- **Plotly**: Creates interactive, web-ready visualizations perfect for dashboards\n",
    "- **Pandas**: Provides quick, convenient plotting directly from DataFrames for rapid exploration\n",
    "\n",
    "Business Intelligence Platforms:\n",
    "\n",
    "- **Tableau**: Drag-and-drop interface for creating professional dashboards and reports\n",
    "- **Power BI**: Microsoft's business analytics solution with strong Excel integration -->\n",
    "\n",
    "Each tool has its strengths: Python excels in programmatic control and integration with data analysis workflows, while `R` provides statistical visualization excellence, while Tableau and Power BI offer user-friendly interfaces for business users.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "baf169b8",
   "metadata": {},
   "source": [
    "**Why Visualization is Essential**\n",
    "\n",
    "Data visualization transforms numbers into understanding, serving three fundamental purposes:\n",
    "\n",
    "- **Exploration and Discovery**: Visualization reveals patterns, outliers, and relationships invisible in raw data, guiding initial analysis and data cleaning decisions.\n",
    "\n",
    "- **Communication and Persuasion**: Well-crafted visuals convey complex findings to diverse audiences, translating technical results into accessible insights.\n",
    "\n",
    "- **Decision Support and Action**: Visualization provides clarity for confident decision-making through dashboards, trend analysis, and comparative displays.\n",
    "\n",
    "Ultimately, visualization bridges the gap between data analysis and actionable insight.    \n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe999078",
   "metadata": {},
   "source": [
    "Effective data visualization follows four key principles:\n",
    "\n",
    "- Context is Key: Design for your specific audience and their decision-making needs.\n",
    "\n",
    "- Keep It Simple: Use clear labels and remove unnecessary elements that don't add value.\n",
    "\n",
    "- Choose the Right Chart Type: Match chart types to data structure: \n",
    "  - bars for categories, \n",
    "  - lines for trends, \n",
    "  - scatter plots for relationships.\n",
    "\n",
    "- Tell a Story: Structure visualizations to guide the audience through a logical narrative flow.\n",
    " \n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a1c9fc28",
   "metadata": {},
   "source": [
    "### Common Tools and Libraries\n",
    "\n",
    "The data visualization landscape offers tools ranging from point-and-click platforms to code-based libraries. Understanding this ecosystem helps you choose the right tool for your needs.\n",
    "\n",
    "Business Intelligence Platforms:\n",
    "- **Tableau**: Industry-leading dashboard creation with drag-and-drop interface\n",
    "- **Power BI**: Microsoft's analytics platform with strong Excel and cloud integration\n",
    "\n",
    "Python Visualization Libraries:\n",
    "- **Matplotlib**: The foundational library providing complete control over plot elements\n",
    "- **Seaborn**: Statistical graphics with simplified syntax, built on Matplotlib. Seaborn is a higher-level library specifically designed for creating more visually appealing and informative statistical graphics with less code. It's excellent for exploring relationships between variables. Seaborn also requires Matplotlib as a dependency. \n",
    "- **Plotly**: Interactive, web-ready visualizations including 3D and geographic plots\n",
    "- **Pandas**: Quick plotting directly from DataFrames for exploratory analysis\n",
    "\n",
    "\n",
    "While business tools excel at dashboard creation and user-friendly interfaces, Python libraries offer several advantages for data scientists:\n",
    "- **Integration**: Seamless workflow from data analysis to visualization\n",
    "- **Reproducibility**: Code-based plots can be version controlled and automated\n",
    "- **Customization**: Complete control over every visual element\n",
    "- **Cost**: Open-source tools reduce licensing expenses\n",
    "\n",
    "This chapter focuses on **Pandas visualization**—the fastest way to create exploratory plots directly from your data. \n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adfa1baa",
   "metadata": {},
   "source": [
    "### Which Library/Plot to Use?\n",
    "\n",
    "It is essential to know which plots to use when the need for data visualization arises. **Matplotlib** (`plt/ax`), **Pandas** (`df.plot`), and **Seaborn** (`.`) each have a set of functions and methods for data visualization. You will learn about the functions and methods later, but here is a summary of them. Pay attention to what they are used for for now and use this table as a reference.\n",
    "\n",
    "| Plot Type   | Pandas (`.plot`)    | Matplotlib (`plt`)   | Seaborn (`sns`)| Uses   |\n",
    "| -------------------- | ---------------- | ---------------------| ------------ | ---------------------- |\n",
    "| **Line**    | `.line()`/`.plot()`   | `.plot()`   | `.lineplot()`   | Time series, trends    |\n",
    "| **Scatter**    | `.scatter(x, y)`    | `.scatter()`    | `.scatterplot()`    | Correlations, relationships   |    \n",
    "| **Bar (vert.)**   | `.bar()`   | `.bar()`    | `.barplot()`   | Category comparisons   |\n",
    "| **Bar (horiz.)** | `.barh()`    | `.barh()`   | `.barplot(y, x)`   | Long category labels   |\n",
    "| **Histogram**    | `.hist()`    | `.hist()`   | `.histplot()`  | Distribution of numeric data    |\n",
    "| **Box plot**   | `.box()`   | `.boxplot()`    | `.boxplot()`   | Distribution + outliers  |\n",
    "| **KDE/<br>Density**    | `.kde()`/<br>`.density()`   | —  | `.kdeplot()`   | Smoothed distribution    |\n",
    "| **ECDF**    | —   | — `.ecdf()` (v3.8+)  | `.ecdfplot()` | cumulative distribution |\n",
    "| **Area**    | `.area()`    | `.fill_between()`    | —    | Cumulative trends    |\n",
    "| **Stacked area**   | `.area(`<br>`stacked=True)`   | `.stackplot()`    | —    | Composition over time    |\n",
    "| **Pie**   | `.pie()`*(ser)*  | `.pie()`    | —    | Part-to-whole (use sparingly)   |\n",
    "| **Hexbin**  | `.hexbin(x, y)`*(df)* | `.hexbin()`   | `.jointplot(`<br>`kind=\"hex\")`*(fig.)*    | Dense scatter (binning)  |\n",
    "| **Violin**  | —   | `.violinplot()`   | `.violinplot()`   | Distribution shape by category    |\n",
    "| **Heatmap**    | —   | `.imshow()`/<br>`.pcolormesh()`    | `.heatmap()`   | Correlation matrices, grids   |\n",
    "| **Count plot**   | —  | —    | `.countplot()`    | Frequency of categories  |\n",
    "| **Pair plot**    | —   | —  | `.pairplot()`*(fig.)*   | Multivariate relationships    |\n",
    "| **Joint plot**   | —   | —  | `.jointplot()`*(fig.)*  | Bivariate + marginals    |\n",
    "| **Regression**   | —   | —    | `.regplot()`(ax)/<br>`.lmplot()`*(fig.)*   | Linear relationships + CI   |\n",
    "| **Contour**    | —   | `.contour()`/<br>`.contourf()`   | `.kdeplot(x, y)`<br>*(2D density)*  | Continuous 2D fields/level sets |\n",
    "\n",
    "<!-- | **Error bars**   | —   | `.errorbar()`   | `.pointplot()`/`.barplot()`/`.lineplot()`*(CIs)* | Data with uncertainty    | -->\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "84601497",
   "metadata": {},
   "source": [
    "### Seaborn Datasets\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f069d5f2",
   "metadata": {},
   "source": [
    "Some of the Seaborn built-in datasets are commonly used for learning data science and machine learning.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "424610be",
   "metadata": {},
   "source": [
    "| Name       | Rows × Cols | What it’s about                          | Common uses                             |\n",
    "| ---------- | ----------: | ---------------------------------------- | --------------------------------------- |\n",
    "| `tips`     |     244 × 7 | Restaurant bills & tips                  | categorical plots, regression, grouping |\n",
    "| `iris`     |     150 × 5 | Iris flower measurements                 | pairplots, clustering, basics           |\n",
    "| `diamonds` | 53,940 × 10 | Diamond prices & attributes              | regression, categorical + numeric       |\n",
    "| `flights`  |     144 × 3 | Monthly air passengers (’49–’60)         | heatmaps, time series                   |\n",
    "| `titanic`  |    891 × 15 | Titanic passengers                       | categorical analysis, missing data      |\n",
    "| `planets`  |   1,035 × 6 | Exoplanet discoveries                    | distributions, facet grids              |\n",
    "| `fmri`     |   1,064 × 4 | fMRI signal over time                    | lineplots with CIs                      |\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96c2103e",
   "metadata": {},
   "source": [
    "To load the datasets, use the `load_dataset` function with syntax:\n",
    "\n",
    "``` python\n",
    "[name] = sns.load_dataset(\"[dataset]\")\n",
    "```\n",
    "\n",
    "Here we would take a quick look at the popular ones.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b3f496c",
   "metadata": {},
   "source": [
    "#### Iris\n",
    "\n",
    "The **Iris dataset**, introduced by Ronald A. Fisher in 1936, is one of the most well-known datasets in statistics and machine learning. It is often used for testing classification and visualization techniques. It contains measurements of three species of iris flowers: *Setosa*, *Versicolor*, and *Virginica*. The features of the iris dataset include:\n",
    "\n",
    "| Feature | Description | Units |\n",
    "|----------|--------------|--------|\n",
    "| sepal_length | Length of the outer part of the flower | cm |\n",
    "| sepal_width | Width of the outer part | cm |\n",
    "| petal_length | Length of the inner petal | cm |\n",
    "| petal_width | Width of the inner petal | cm |\n",
    "| species | Type of iris flower (*setosa*, *versicolor*, *virginica*) | categorical |\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "48af12e7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.785668Z",
     "iopub.status.busy": "2026-08-31T06:00:44.785578Z",
     "iopub.status.idle": "2026-08-31T06:00:44.794613Z",
     "shell.execute_reply": "2026-08-31T06:00:44.794416Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal_length</th>\n",
       "      <th>sepal_width</th>\n",
       "      <th>petal_length</th>\n",
       "      <th>petal_width</th>\n",
       "      <th>species</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal_length  sepal_width  petal_length  petal_width species\n",
       "0           5.1          3.5           1.4          0.2  setosa\n",
       "1           4.9          3.0           1.4          0.2  setosa\n",
       "2           4.7          3.2           1.3          0.2  setosa\n",
       "3           4.6          3.1           1.5          0.2  setosa\n",
       "4           5.0          3.6           1.4          0.2  setosa"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### load dataset\n",
    "\n",
    "# !pip install seaborn      ### ensure seaborn is installed; uncomment when done\n",
    "# import seaborn as sns     ### uncomment if seaborn is not already imported\n",
    "\n",
    "iris = sns.load_dataset(\"iris\")\n",
    "iris.head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd2e75c1",
   "metadata": {},
   "source": [
    "To ensure a dataset is imported for your analysis, you may use the following code.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "189492bf",
   "metadata": {},
   "outputs": [],
   "source": [
    "if \"sns\" not in globals():\n",
    "    import seaborn as sns\n",
    "\n",
    "if \"titanic\" not in globals():\n",
    "    titanic = sns.load_dataset(\"titanic\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "57e0d1c7",
   "metadata": {},
   "source": [
    "#### Tips\n",
    "\n",
    "The **tips** dataset records restaurant bills and gratuities along with simple demographics, making it useful for practicing categorical comparisons and relationships between numeric variables.\n",
    "\n",
    "The **tips** dataset has features such as:\n",
    "\n",
    "| Feature | Description | Type |\n",
    "|----------|--------------|------|\n",
    "| **total_bill** | Total bill amount (including tax) | float |\n",
    "| **tip** | Tip amount given by the customer | float |\n",
    "| **sex** | Gender of the server’s customer (*Male*, *Female*) | categorical |\n",
    "| **smoker** | Whether the party included smokers (*Yes*, *No*) | categorical |\n",
    "| **day** | Day of the week (*Thur*, *Fri*, *Sat*, *Sun*) | categorical |\n",
    "| **time** | Meal type (*Lunch*, *Dinner*) | categorical |\n",
    "| **size** | Number of people in the dining party | integer |\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "162d6d84",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.795670Z",
     "iopub.status.busy": "2026-08-31T06:00:44.795612Z",
     "iopub.status.idle": "2026-08-31T06:00:44.799936Z",
     "shell.execute_reply": "2026-08-31T06:00:44.799767Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>total_bill</th>\n",
       "      <th>tip</th>\n",
       "      <th>sex</th>\n",
       "      <th>smoker</th>\n",
       "      <th>day</th>\n",
       "      <th>time</th>\n",
       "      <th>size</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>16.99</td>\n",
       "      <td>1.01</td>\n",
       "      <td>Female</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10.34</td>\n",
       "      <td>1.66</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21.01</td>\n",
       "      <td>3.50</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   total_bill   tip     sex smoker  day    time  size\n",
       "0       16.99  1.01  Female     No  Sun  Dinner     2\n",
       "1       10.34  1.66    Male     No  Sun  Dinner     3\n",
       "2       21.01  3.50    Male     No  Sun  Dinner     3"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tips = sns.load_dataset('tips')\n",
    "tips.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d07e4462",
   "metadata": {},
   "source": [
    "#### Titanic\n",
    "\n",
    "The **titanic** dataset includes passenger demographics, ticket class, fares, and survival outcome, making it a classic dataset for classification and categorical analysis of the catastrophic event in 1912.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "06a5aa07",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.800925Z",
     "iopub.status.busy": "2026-08-31T06:00:44.800872Z",
     "iopub.status.idle": "2026-08-31T06:00:44.805321Z",
     "shell.execute_reply": "2026-08-31T06:00:44.805164Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>survived</th>\n",
       "      <th>pclass</th>\n",
       "      <th>sex</th>\n",
       "      <th>age</th>\n",
       "      <th>sibsp</th>\n",
       "      <th>parch</th>\n",
       "      <th>fare</th>\n",
       "      <th>embarked</th>\n",
       "      <th>class</th>\n",
       "      <th>who</th>\n",
       "      <th>adult_male</th>\n",
       "      <th>deck</th>\n",
       "      <th>embark_town</th>\n",
       "      <th>alive</th>\n",
       "      <th>alone</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "      <td>Third</td>\n",
       "      <td>man</td>\n",
       "      <td>True</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Southampton</td>\n",
       "      <td>no</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "      <td>First</td>\n",
       "      <td>woman</td>\n",
       "      <td>False</td>\n",
       "      <td>C</td>\n",
       "      <td>Cherbourg</td>\n",
       "      <td>yes</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "      <td>Third</td>\n",
       "      <td>woman</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Southampton</td>\n",
       "      <td>yes</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   survived  pclass     sex   age  sibsp  parch     fare embarked  class  \\\n",
       "0         0       3    male  22.0      1      0   7.2500        S  Third   \n",
       "1         1       1  female  38.0      1      0  71.2833        C  First   \n",
       "2         1       3  female  26.0      0      0   7.9250        S  Third   \n",
       "\n",
       "     who  adult_male deck  embark_town alive  alone  \n",
       "0    man        True  NaN  Southampton    no  False  \n",
       "1  woman       False    C    Cherbourg   yes  False  \n",
       "2  woman       False  NaN  Southampton   yes   True  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic = sns.load_dataset('titanic')\n",
    "titanic.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b05ca94",
   "metadata": {},
   "source": [
    "### Previewing Data\n",
    "\n",
    "After you load a new dataset, always use the following methods/property to explore the data:\n",
    "\n",
    "- `head()` (how the dataset looks like),\n",
    "- `describe()` (descriptive statistics), \n",
    "- `info()`, and\n",
    "- `shape` (get dimension information; or just evaluate the dataframe)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "950fb1bd",
   "metadata": {},
   "source": [
    "Here below is how you can **preview** a dataset before starting your analysis.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0263f10d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.808461Z",
     "iopub.status.busy": "2026-08-31T06:00:44.808392Z",
     "iopub.status.idle": "2026-08-31T06:00:44.816269Z",
     "shell.execute_reply": "2026-08-31T06:00:44.816097Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   total_bill   tip     sex smoker  day    time  size\n",
      "0       16.99  1.01  Female     No  Sun  Dinner     2\n",
      "1       10.34  1.66    Male     No  Sun  Dinner     3\n",
      "2       21.01  3.50    Male     No  Sun  Dinner     3\n",
      "3       23.68  3.31    Male     No  Sun  Dinner     2\n",
      "4       24.59  3.61  Female     No  Sun  Dinner     4 \n",
      "\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 244 entries, 0 to 243\n",
      "Data columns (total 7 columns):\n",
      " #   Column      Non-Null Count  Dtype   \n",
      "---  ------      --------------  -----   \n",
      " 0   total_bill  244 non-null    float64 \n",
      " 1   tip         244 non-null    float64 \n",
      " 2   sex         244 non-null    category\n",
      " 3   smoker      244 non-null    category\n",
      " 4   day         244 non-null    category\n",
      " 5   time        244 non-null    category\n",
      " 6   size        244 non-null    int64   \n",
      "dtypes: category(4), float64(2), int64(1)\n",
      "memory usage: 7.4 KB\n",
      "None \n",
      "\n",
      "       total_bill         tip        size\n",
      "count  244.000000  244.000000  244.000000\n",
      "mean    19.785943    2.998279    2.569672\n",
      "std      8.902412    1.383638    0.951100\n",
      "min      3.070000    1.000000    1.000000\n",
      "25%     13.347500    2.000000    2.000000\n",
      "50%     17.795000    2.900000    2.000000\n",
      "75%     24.127500    3.562500    3.000000\n",
      "max     50.810000   10.000000    6.000000 \n",
      "\n",
      "(244, 7) \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(tips.head(), \"\\n\")\n",
    "print(tips.info(), \"\\n\")\n",
    "print(tips.describe(), \"\\n\")\n",
    "print(tips.shape, \"\\n\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c8f4e96b",
   "metadata": {},
   "source": [
    "### Style Sheets\n",
    "\n",
    "The style sheet, or themes, basically creates a set of style rules that your plots follow. The use of a stylesheet gives your plots a unified look and feel, making them more professional. You can even create your own stylesheet.\n",
    "\n",
    "Matplotlib has [style sheets](https://matplotlib.org/stable/gallery/style_sheets/index.html) (or *themes*) you can use to make your plots look a little nicer. Popular stylesheets include:\n",
    "- **bmh** (Bayesian Methods for Hackers)\n",
    "- **fivethirtyeight** (FiveThirtyEight is a news site)\n",
    "- **ggplot** (R’s ggplot2 default theme)\n",
    "- **dark_background**\n",
    "\n",
    "The syntax for using stylesheets in matplotlib is:\n",
    "\n",
    "`plt.style.use(style_name)`\n",
    "\n",
    "To see all the stylesheets available, use:\n",
    "\n",
    "`plt.style.available`\n",
    "\n",
    "Note that:\n",
    "- we use `plt.style`, which means we are using matplotlib here.\n",
    "- Pandas by default pulls colors from Matplotlib's `axes.prop_cycle`, a Matplotlib `rcParam` (runtime configuration parameter), which is a color iterator (cycler) that cycles through a list of 10 predefined colors. That's why you see different colors, e.g., when plotting multiple columns from a `df`, because Matplotlib cycles through 10 colors before repeating.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "17ea5742",
   "metadata": {},
   "source": [
    "Comment/uncomment out the following lines of plt.style.use() to see how the example histogram change looks.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c3f6b06a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.817221Z",
     "iopub.status.busy": "2026-08-31T06:00:44.817163Z",
     "iopub.status.idle": "2026-08-31T06:00:44.818428Z",
     "shell.execute_reply": "2026-08-31T06:00:44.818266Z"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# plt.style.use('default')\n",
    "# plt.style.use('ggplot')\n",
    "# plt.style.use('bmh')\n",
    "plt.style.use('fivethirtyeight')\n",
    "# plt.style.use('dark_background')\n",
    "# plt.style.use('fast')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "29f78473",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.819238Z",
     "iopub.status.busy": "2026-08-31T06:00:44.819188Z",
     "iopub.status.idle": "2026-08-31T06:00:44.868291Z",
     "shell.execute_reply": "2026-08-31T06:00:44.868103Z"
    },
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEeCAYAAAB2VUk8AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAFt9JREFUeJzt3QlsVNXbx/GnpaUQ2mJ8WZXFsqkUKKKIoriAqIgCChIiEGIUkUU2QSKKEjUCFgQCgiAYwiK4RCObGmRxgYgLoSBECYuRpVHRlNJG6kD75jnmzr/TDvAUO9NZvp+kmc6dQ3t7mJnfPesk5OXllQgAAAaJlkIAAChCAwBgRmgAAMwIDQCAGaEBADAjNAAAZoQGAMCM0AAAmBEaAAAzQgMAYEZoAADMCA0AgBmhAQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAzAgNAIBZkr0oIHJaUiTfV3LRcunJCZImRWE5JwDhQ2igQjQwMlceuWi5fYMyJC05LKcEIIzongIAmBEaAAAzQgMAYEZoAADMCA0AgBmhAQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmhAYAwIzQAACYERoAADNCAwBgRmgAAMwIDQCAGaEBADAjNAAAZkn2oohVpyVF8n0lprLFklBlvz89OUHSpKjSfz8AO0ID7g07c+URU9mcgc2q7PfvG5QhacmV/usBVADdUwAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmhAYAwIzQAACEPjTWrVsnffr0kYyMDKlfv760a9dOHnvsMTl27FhAufz8fJk8ebK0adNG6tWrJ23btpUpU6ZIQUHBpf5qxKmUpEQ57qtu+tJV5gAiYEV4SUmJjBs3TpYtW+YCo2/fvpKamiq5ubmyfft2OXr0qDRq1MiVLSwslJ49e8revXula9eu0q9fP9mzZ4/MmzfPld24caPUqFEjBH8WYlGhr0SyVtlWrrN6HIiQ0HjzzTddYDz++OMyY8YMqVatWsDjZ8+e9X8/d+5cFxhjx46VqVOn+o/r93PmzJEFCxbI+PHj/+vfAACIxO6pv//+2wXFVVddJdOnTy8XGCopKcnfIlmxYoVrhUycODGgjN7X48uXL/+v5w8AiNSWxpYtWyQvL08GDhwo586dc91Lhw4dktq1a8sdd9whzZr9bzM7Pa5dVt26dZNatWoF/By936lTJ9m8ebMbA/G6swAAMRQau3fvdrfawrjlllvk4MGD/scSExNlxIgR8sorr/hDQ5UOktL0uIaGliM0ACAGu6dOnjzpbt944w1JT093LQ9tKWiLo0WLFjJ//nxZunSpf9aU0lZIMPrvS5cDAMRYaBQXF7vb6tWry6pVq6RDhw5ubKJz585ucFxbGxocAIDYVKHQ8FoH7du3l4YNGwY81rp1azdAfuTIETfu4ZU9depU0J/ltTC8cgCAGAuNli1bXrDLyTt+5swZad68ufv+8OHDQct6x71yAIAYGwjv0qWLuz1w4EC5x3w+nwsCnRlVp04dt0pcWyM7d+50i/xKz6DS+3q8adOmDIIDQKy2NHQFuK7s1nAou8Zi9uzZritKV4DrWo2EhAQZPHiw2y4kOzs7oKze1+NDhgypnL8CABCZK8JnzZold999t4wePVo2bNjguqx0a5Avv/xSGjduLC+//LK/7JgxY9zMKl39rWWysrIkJyfHzbrSQfThw4dX9t8DAIikDQu1tbF161Z55JFH3LqNRYsWuZbH0KFDXRhot5RHu6Q0WDQctEtLZ1bp7ahRo+Tjjz+WmjVrVvbfAwCIpJaG0nEI3TfKQgfHp02b5r4AANGNz9MAAJgRGgAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmhAYAwIzQAACYERoAADNCAwBgRmgAAMwIDQCAGaEBADAjNAAAZoQGAMCM0AAAmBEaAAAzQgMAYEZoAADMCA0AgBmhAQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmhAYAwCypqk8AqEqnJUXyfSWmsunJCZImRSE/JyCSERqIaxoYmSuPmMruG5QhackhPyUgotE9BQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmhAYAwIzQAACYERoAADNCAwBgxtboCImUpEQ57qtuKlssCSE/HwARFBpz5syRqVOnuu83bdokHTt2DHg8Pz9fpk+fLmvXrpXff/9d6tevL3369JFJkyZJampqZZwCIkyhr0SyVtk+pyJnYLOQnw+ACOme2r9/v0ybNk1q1aoV9PHCwkLp2bOnLFiwQFq1aiUjRoyQli1byrx586RXr15y5syZ/3oKAIBoCA2fzyfDhw+Xtm3bumAIZu7cubJ3714ZO3asfPjhh65Ford6f9euXS5MAABxEBozZ86Un376SebPny/VqlUr93hJSYmsWLHCdUFNnDgx4DG9r8eXL1/+X04BABANobF7926ZNWuWG5e45pprgpY5dOiQ5ObmSqdOncp1X+l9Pf7LL7/IsWPHLvU0AACRHhpFRUX+bqkxY8act5yGhmrWLPhAp3fcKwcAiMHZU6+++qp7o9+2bVvQbqnSs6ZU7dq1gz6enp4eUA4AEGMtjW+//dbNfJowYYK0bt06NGcFAIj+lsbZs2ddt1RmZqaMGzfuouW9lsSpU6eCPu61MLxyqFynJUXyfSUXLcfiOgAhCY2CggL/+EPdunWDlunevbu7XblypX+A/PDhw0HLesebN29ekdOAkQZG5sqLL7BjcR2AkIRGSkqKDB48OOhjO3bscIHSo0cPqVOnjjRp0sSFQcOGDWXnzp1ukV/pGVR6X483bdpUGjVqVJHTAABEQ2jUrFnTjWcEo91WGhrjx48P2EZEQ+a1116T7Oxs/1YjSu9ry0XLAwCiQ8g3LNQpuRs3bnT7U+3Zs0eysrIkJydHtmzZIh06dHBhA8TSJozpyQmSJkVhOScg5kJDu6Q2bNjgNixct26dfPXVV27DwlGjRrmFgdp6AWJpE8Z9gzIkLTkspwREb2gsXLjQfQWj6zR0U0P9AgBELz6ECQBgRmgAAMwIDQCAGaEBADAjNAAAZoQGAMCM0AAAmBEaAAAzQgMAYEZoAADMCA0AgBmhAQAwIzQAAJGzNToQyZ99weejAxVDaCCuP/uCz0cHKobuKQCAGaEBADAjNAAAZoQGAMCM0AAAmBEaAAAzQgMAYBbT6zROS4rk+0pMZdOTEyRNikJ+TgAQzWI6NDQwMldefIGX2jcoQ9KSQ35KABDV6J4CAJjFdEsj3rvc2FcJQGUjNGK4y419lQBUNrqnAABmtDSAKsQMP0QbQgOoQszwQ7ShewoAYEZoAADMCA0AgBmhAQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmhAYAwIzQAACYERoAADNCAwBgRmgAAEITGidOnJAFCxbIgw8+KG3atJG6detKq1atZPDgwfL9998H/Tf5+fkyefJkV75evXrStm1bmTJlihQUFFTkVwMAou0zwhcvXixz5syRjIwMufPOO6VOnTpy6NAh2bBhg/tasmSJPPTQQ/7yhYWF0rNnT9m7d6907dpV+vXrJ3v27JF58+bJ9u3bZePGjVKjRo1Q/F0AgKoOjQ4dOsj69evl1ltvDTi+Y8cO6d27t4wfP96FREpKijs+d+5cFxhjx46VqVOn+svr9xo+2mrRfwMAiMHuqV69epULDNW5c2fp0qWL5OXlyf79+92xkpISWbFihaSmpsrEiRMDyut9Pb58+fL/ev5AxElJSpTjvuqmr2JJqPSfe1r+vWgDqrylcSHJycnutlq1au5Wu61yc3OlW7duUqtWrYCyer9Tp06yefNmOXbsmDRq1KiyTgOocoW+EsladcRUNmdgs0r/ufsGZUjavy9HIDJnTx09elS2bdsmDRo0kMzMTH9oqGbNgr8ovONeOQBAHISGz+eTYcOGSVFRkRur8FoaOmtK1a5dO+i/S09PDygHAIjx0CguLpYRI0a4gfAhQ4bIgAEDKu/MAACxExoaGCNHjpT3339f+vfvL7Nnzw7akjh16lTQf++1MLxyAIAYHQj3Whhr1qxxay8WLlwoiYmB+dO8eXN3e/jw4aA/wzvulQMAxGBLo3Rg6EK+RYsW+ccxStMwaNiwoezcudMt8itN7+vxpk2bMnMKAGI1NLwuKQ2MPn36uBXiwQJDJSQkuO1FdLuQ7OzsgMf0vh7XcRAAQIx2T82YMUNWr17tFua1aNGiXBgoXRHerl079/2YMWPcViG6+lu3D8nKypKcnBzZsmWLW10+fPjwyvtLAACRFRq//vqru9VWwsyZM4OWadKkiT80dBGf7kk1ffp0WbdunXz11VdSv359GTVqlEyaNElq1qxZGX8DACASQ0MHvPWrInSdxrRp09wXACC68XkaAAAzQgMAYEZoAADCv8stgMjgbaFukZ6cIGlSFPJzQuwgNIA43pqdbdRRUXRPAQDMCA0AgBndUwAuSj9CNt9XYirLOElsIzQAXJQGRuZKxklA9xQAoAJoaVRwmmJFmt7WJj3NeUT6875YEsJyPoh8hEYFpylWpOltbdLTnEekP+9zBjYLy/kg8tE9BQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAzAgNAIAZoQEAMCM0AABmbCMSwo/SZL8eALGG0AjhR2myXw+AWEP3FADAjNAAAJjRPQWgSvARstGJ0ABQJfgI2ehE9xQAwIyWBoC4/DhmXBpCA0BcfhwzLg3dUwAAM1oaAKqkK4kdE6IToQGgSrqS2DEhOtE9BQAwIzQAAGaEBgDAjNAAAJgxEA4AF8AeWYEIDQC4APbICkT3FADAjJYGgLj8OOZ46EoKBUIDQFx+HHM8dCWFAt1TAAAzQgMAYEb3VJT1w7LJG4CqRGhEWT8sm7wBqEp0TwEAIi80du3aJQ8//LA0adJErrjiCrnrrrvko48+CtevBwBES/fUl19+KX379pUaNWrIQw89JKmpqbJ27Vp59NFH5dixY/LUU0+F4zQAAJEeGmfPnpUxY8ZIYmKibNiwQdq1a+eOP/PMM9KtWzd5+eWXpXfv3q4FAgCI89DQVsaRI0dk4MCB/sBQtWvXlvHjx8uIESNk9erVMmnSpEr/3YlSIv+XklipZaPlZ1b17+dn8v8ZDT+zMn+3qpGUILk+24rBtOQESZV/LlquQKrLaeOGidaf+V8k5OXl2c7mEr300kvy+uuvy9KlS10XVWm//fabXH311XLbbbe57ioAQJwPhB86dMjdNm/evNxj9evXd+Mbhw8fDvVpAACiITTy8/PdbXp6etDH09LS/GUAAJGNdRoAgMgJDa+Fcb7WxOnTp8/bCgEAxFloeGMZ3thG2YHwgoICadaMrTEAIBqEPDRuueUWd7tly5Zyj23evDmgDAAgsoV8yq0u7rvhhhskNzdXNm3a5F+rcerUKbe479dff5XvvvtOmjZtGsrTAABEQ2hcaBuRo0ePuhXhbCMCANEhLLOndPHep59+Kp06dXKbFL799ttSr149d1uZgcGmiOd34sQJWbBggTz44IPSpk0bqVu3rrRq1UoGDx4s33//fdB/o5MXJk+e7Mrr/1fbtm1lypQpbhwKInPmzJHLLrvMfWlruSzqr7x169ZJnz59JCMjw63T0p6Hxx57zO1BVxp1F6ikpMRdaN9///1uQXTDhg1dD87YsWPll19+KVM6tPUXlpZGONCaubCpU6e6Nzl9sd56661Sp04dNzlB9wPTJ+SSJUtcvXkKCwvl3nvvlb1790rXrl3di3vPnj1ubKpDhw6yceNGV9fxav/+/XLnnXdKUlKSqyvteu3YsaP/ceovkD7Hxo0bJ8uWLXPPQe2a1teodltv375d3nrrLbn55ptdWequvOeee07eeOMNadCggdx3331ufduPP/7o6kTr8bPPPpPWrVuHpf5iIjR03ERfsHo1fb5xE72ajudNETVAL7/8chcYpe3YscNtGFmrVi35+eefJSUlxR1/9dVX5bXXXnNXMho4ZcPnhRdecHuHxSOfz+dascnJyW7m33vvvVcuNKi/QAsXLpRnn31WHn/8cZkxY4ZUq1at3GtYA1hRd+VnmV577bVy5ZVXytdff+327fNokGig6N5++n046i8mQkMTVK+SS1ec55133nGbIuoTNhSbIsYCrTutw61bt8p1113nrgr1qkXX0GiQaKB49CpGm8faUtm9e7fEo2nTprkX3xdffCFz5851G26WDg3qL9Dff//t3vS0G08v3rxwCIa6K0+7Prt37+663rVFVpr2Flx//fVyzz33yLvvvhuW+ouJFeGavkqbYmVpS0NpExjB6RWz8q7+9Imo3QY6BlX6Saf0vh7XftSy/dDxQF9ss2bNchcg11xzTdAy1F8gvSDJy8uTnj17yrlz51yrd/bs2W5Ms+y+c9Rd8LVu1atXl2+++abcImkdK1a333572OovJj4jnE0RL52O+Wzbts31lWZmZgbU5/kWXepxXWOj5Ro1aiTxoqioSIYPH+4GFfUzYs6H+gvkXdXqRYmuyTp48KD/Mf2cHe0JeOWVV9x96q487VZ+8cUX5fnnn5cbb7wxYExDx3K1y++JJ54IW/3FRGiwKeKl980PGzbMvRlqf6fX0vDqqnTfaUW2holV2lesLzYN2bJ98qVRf4FOnjzpbrXrOCsry7U8dOaeDs5qv/v8+fPd4LjOoqLughs5cqSbETp69GjXQvPo5IF+/fr5u/zCUX8x0T2FiisuLnZXeDoQPmTIEBkwYEBVn1JE+/bbb2XevHkyYcIE/ywV2J9rSrtYVq1a5WbwaOu/c+fObjaVtjY0OHB+OnlAWxM6gL1v3z7XvfTJJ5/ImTNn3DRcnREVLjERGmyKWPEXsV65vP/++9K/f3/Xv1yaV1c6++xSWnaxRmf2aLeUdt/ptNGLof4CeX9n+/bt3fqC0jSAr7rqKvfpnjruQd2Vpy1bnXwxdOhQ9/zTWVQautrKWLNmjRuT1K4rFY76i4nuqdKbIuoTM9imiHp1g/+1MPTJps1anQqpV3rB6vN840De8WBjSLFInz9eX7EuigxGZ7eolStX+gfIqb9/tWzZ8oJdJt5xvWrmuVeezsxTXbp0CTpmq/WrXX36PA1H/cVEaOjgmn6krPaVlv1IWTZFDB4YOs120aJFQfvm9QmlV4Q7d+500/TKTtvT47pXWLwMROraFV05H4x272mg9OjRw01l1LVA1F8g783uwIEDQcfV9I1M60jrT98EqbtA//zzT8DYUFl//vmnu/DTFkc4nnsx0T2l0820ifvBBx+4xPVoE03DRPtS473P3uuS0sDQbRwWL1583sHchIQE9yapVy7Z2dkBj+l9Pa7jIPGiZs2abjwj2JfOZlHa16z3dWEp9RdIB7l1OryGw/LlywMe065RfZ3qdFwdzKXuyrvpppvcrW4DVLbbSQfFjx8/7p6HenETjvqLicV9im1ELkz7RHUwTevlySefDBoY+sL1VtPrVYkuGNJpffqC11kvOTk5/q0IdPsRfTONdzrWUXZxn6L+AumYxd133y1//PGHqxevS0Vft40bN5bPP//ctTIUdRdI17Y88MADrlWr3aPaqtUuPa0TrT+ti/Xr17tFfuGov5gJDfXDDz+4N0ed6aLNXh1k06vr0nsqxfub24XolEhdVe/Rq5rp06e7TeZ0bEhf1NpK0YVtOo0Z5w8NRf0F0hk/Om1Zu4z/+usvVx/6BvjMM8+UGyui7gLptHhtaegGrLrORbusdCNC3Rbo6aefdiu9w1V/MRUaAIDQiokxDQBAeBAaAAAzQgMAYEZoAADMCA0AgBmhAQAwIzQAAGaEBgDAjNAAAJgRGgAAM0IDAGBGaAAAxOr/AWT8w1BHVzHmAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "titanic['age'].hist(figsize=(4, 3), bins=30, grid=False, edgecolor='white')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b967f81",
   "metadata": {},
   "source": [
    "To see all the available styles/themes in the environment, use the syntax:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "e5e746bc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.869327Z",
     "iopub.status.busy": "2026-08-31T06:00:44.869276Z",
     "iopub.status.idle": "2026-08-31T06:00:44.870927Z",
     "shell.execute_reply": "2026-08-31T06:00:44.870765Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Solarize_Light2',\n",
       " '_classic_test_patch',\n",
       " '_mpl-gallery',\n",
       " '_mpl-gallery-nogrid',\n",
       " 'bmh',\n",
       " 'classic',\n",
       " 'dark_background',\n",
       " 'fast',\n",
       " 'fivethirtyeight',\n",
       " 'ggplot',\n",
       " 'grayscale',\n",
       " 'petroff10',\n",
       " 'seaborn-v0_8',\n",
       " 'seaborn-v0_8-bright',\n",
       " 'seaborn-v0_8-colorblind',\n",
       " 'seaborn-v0_8-dark',\n",
       " 'seaborn-v0_8-dark-palette',\n",
       " 'seaborn-v0_8-darkgrid',\n",
       " 'seaborn-v0_8-deep',\n",
       " 'seaborn-v0_8-muted',\n",
       " 'seaborn-v0_8-notebook',\n",
       " 'seaborn-v0_8-paper',\n",
       " 'seaborn-v0_8-pastel',\n",
       " 'seaborn-v0_8-poster',\n",
       " 'seaborn-v0_8-talk',\n",
       " 'seaborn-v0_8-ticks',\n",
       " 'seaborn-v0_8-white',\n",
       " 'seaborn-v0_8-whitegrid',\n",
       " 'tableau-colorblind10']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plt.style.available"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6fd17b5e",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f14d74f5",
   "metadata": {},
   "source": [
    "<!-- # Sample DataFrames for demonstration\n",
    "import numpy as np\n",
    "\n",
    "# Create sample data for examples\n",
    "np.random.seed(42)\n",
    "\n",
    "df1 = pd.DataFrame({\n",
    "    'A': np.random.randn(100),\n",
    "    'B': np.random.randn(100),\n",
    "    'C': np.random.randn(100)\n",
    "})\n",
    "\n",
    "# Use positive values to support stacked area plots\n",
    "df2 = pd.DataFrame({\n",
    "    'a': np.random.rand(50),\n",
    "    'b': np.random.rand(50),\n",
    "    'c': np.random.rand(50)\n",
    "}) -->"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d756dd99",
   "metadata": {},
   "source": [
    "## Pandas Overview"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf8af583",
   "metadata": {},
   "source": [
    "Pandas offers a simple, high-level interface for creating plots directly from Series and DataFrame objects. It builds on Matplotlib behind the scenes, allowing you to make quick, readable plots with calls like `df.plot()` or `series.plot()`. You can easily produce line, bar/stacked bar, area, scatter, box, histogram, KDE, hexbin, and pie charts while using your **index** (including datetime) and **column labels**. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21c3fb68",
   "metadata": {},
   "source": [
    "### The `.plot(kind=)` Method"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd281ec3",
   "metadata": {},
   "source": [
    "`.plot()`, a wrapper around Matplotlib's `plt.plot()`, is the primary top-level plotting method in pandas, which uses the `kind` **keyword argument** to access a variety of plotting methods including:\n",
    "\n",
    "- `bar` or `barh` for bar plots\n",
    "- `hist` for histogram\n",
    "- `box` for boxplot\n",
    "- `kde’ or `density` for density plots\n",
    "- `area` for area plots\n",
    "- `scatter` for scatter plots\n",
    "- `hexbin` for hexagonal bin plots\n",
    "- `pie` for pie plots"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d72d1254",
   "metadata": {},
   "source": [
    "For example, you may want to see the histogram of the age of the titanic passengers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bceedcf3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: ylabel='Frequency'>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGdCAYAAAAIbpn/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAJXhJREFUeJzt3QtYVVXex/E/xM0bmDeQEcS8JGpaWilpUylF5jiaTpOlk6ZTU5kl2DhSqVkWVE/eJi9Tg7fHzLRR0xw1RdOpQU1NzZrwLpSCduGiDmCy32eteTgvB7X0eGCftfl+nmcHZ+/DZq328Zwf67b9LMuyBAAAwED+dhcAAADAUwQZAABgLIIMAAAwFkEGAAAYiyADAACMRZABAADGIsgAAABjEWQAAICxAsThSktL5dixY1KnTh3x8/OzuzgAAOASqPV6CwsLJTIyUvz9/atvkFEhJioqyu5iAAAAD2RnZ0uTJk2qb5BRLTFl/yNCQ0PtLg4AALgEBQUFuiGi7HO82gaZsu4kFWIIMgAAmOWXhoUw2BcAABiLIAMAAIxFkAEAAMYiyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAF2FwDwZTFjVnn8s0dSe3m1LACA89EiAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAAAYiyADAACMRZABAADGsjXIxMTEiJ+f33nb8OHD9fGioiL9ff369aV27drSv39/yc3NtbPIAADAh9gaZD777DM5fvy4a1u3bp3ef9999+mviYmJsnLlSlmyZIls2rRJjh07Jv369bOzyAAAwIfYetPIhg0buj1OTU2V5s2by2233Sb5+fmSlpYmCxculO7du+vjc+bMkdjYWNmyZYt06dLFplIDAABf4TNjZEpKSmTBggUydOhQ3b20Y8cOOXv2rMTHx7ue07p1a4mOjpaMjIyLnqe4uFgKCgrcNgAA4Ew+E2SWL18ueXl5MmTIEP04JydHgoKCpG7dum7PCw8P18cuJiUlRcLCwlxbVFRUpZcdAABU8yCjupF69uwpkZGRV3Se5ORk3S1VtmVnZ3utjAAAwLfYOkamzNGjR2X9+vWydOlS176IiAjd3aRaacq3yqhZS+rYxQQHB+sNAAA4n0+0yKhBvI0aNZJevXq59nXq1EkCAwMlPT3dtS8zM1OysrIkLi7OppICAABfYnuLTGlpqQ4ygwcPloCA/y+OGt8ybNgwSUpKknr16kloaKiMGDFChxhmLAEAAJ8IMqpLSbWyqNlKFU2ePFn8/f31QnhqNlJCQoLMmDHDlnICAADf42dZliUOpqZfq9YdNfBXteoAlyNmzCqPf/ZI6v93lQIAKufz2yfGyAAAAHiCIAMAAIxFkAEAAMYiyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAAAYK8DuAgCVLWbMKqlOZT6S2surZQEAX0aLDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAAAYiyADAACMRZABAADGIsgAAABjcfdrwGG4czaA6oQWGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxrI9yHz77bcyaNAgqV+/vtSoUUOuu+462b59u+u4ZVkybtw4ady4sT4eHx8v+/fvt7XMAADAN9gaZH788Ufp2rWrBAYGyurVq+Wrr76SN954Q66++mrXc1577TWZNm2azJo1S7Zu3Sq1atWShIQEKSoqsrPoAACguq8j8+qrr0pUVJTMmTPHta9Zs2ZurTFTpkyR559/Xvr06aP3zZ8/X8LDw2X58uUyYMAAW8oNAAB8g60tMitWrJAbb7xR7rvvPmnUqJHccMMN8vbbb7uOHz58WHJycnR3UpmwsDDp3LmzZGRkXPCcxcXFUlBQ4LYBAABnsjXIHDp0SGbOnCktW7aUtWvXyuOPPy5PPfWUzJs3Tx9XIUZRLTDlqcdlxypKSUnRYadsUy0+AADAmWwNMqWlpdKxY0d55ZVXdGvMo48+Ko888ogeD+Op5ORkyc/Pd23Z2dleLTMAAPAdtgYZNROpTZs2bvtiY2MlKytLfx8REaG/5ubmuj1HPS47VlFwcLCEhoa6bQAAwJlsDTJqxlJmZqbbvn379knTpk1dA39VYElPT3cdV2Ne1OyluLi4Ki8vAADwLbbOWkpMTJRbbrlFdy39/ve/l23btslbb72lN8XPz09GjhwpEydO1ONoVLAZO3asREZGSt++fe0sOgAAqO5B5qabbpJly5bpcS0vvviiDipquvXAgQNdzxk9erScPn1aj5/Jy8uTbt26yZo1ayQkJMTOogMAgOoeZJTf/OY3ersY1SqjQo7aAAAAfOoWBQAAAJ4iyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAAAYiyADAACMRZABAADGIsgAAABjEWQAAICxCDIAAMBYBBkAAGAsggwAADAWQQYAABiLIAMAAIxFkAEAAMYiyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLFuDzAsvvCB+fn5uW+vWrV3Hi4qKZPjw4VK/fn2pXbu29O/fX3Jzc+0sMgAA8CG2t8i0bdtWjh8/7to++eQT17HExERZuXKlLFmyRDZt2iTHjh2Tfv362VpeAADgOwJsL0BAgERERJy3Pz8/X9LS0mThwoXSvXt3vW/OnDkSGxsrW7ZskS5duthQWgAA4Etsb5HZv3+/REZGyjXXXCMDBw6UrKwsvX/Hjh1y9uxZiY+Pdz1XdTtFR0dLRkbGRc9XXFwsBQUFbhsAAHAmW4NM586dZe7cubJmzRqZOXOmHD58WG699VYpLCyUnJwcCQoKkrp167r9THh4uD52MSkpKRIWFubaoqKiqqAmAACg2nUt9ezZ0/V9+/btdbBp2rSpLF68WGrUqOHROZOTkyUpKcn1WLXIEGYAAHAm27uWylOtL61atZIDBw7ocTMlJSWSl5fn9hw1a+lCY2rKBAcHS2hoqNsGAACcyaeCzKlTp+TgwYPSuHFj6dSpkwQGBkp6errreGZmph5DExcXZ2s5AQCAb7C1a+mZZ56R3r176+4kNbV6/PjxctVVV8kDDzygx7cMGzZMdxPVq1dPt6yMGDFChxhmLAEAANuDzDfffKNDy/fffy8NGzaUbt266anV6ntl8uTJ4u/vrxfCU7OREhISZMaMGVw5AABgf5BZtGjRzx4PCQmR6dOn6w0AAMCnx8gAAABcDoIMAAAwFkEGAAAYiyADAACMRZABAADGIsgAAABjEWQAAICxCDIAAMBYti6IB8A5Ysas8vhnj6T28mpZAFQftMgAAABjEWQAAICxCDIAAMBYBBkAAGAsggwAADAWQQYAABiLIAMAAIxFkAEAANUryBw6dMj7JQEAAKiKINOiRQu54447ZMGCBVJUVOTJKQAAAOwJMjt37pT27dtLUlKSREREyJ/+9CfZtm3blZcGAACgsoPM9ddfL1OnTpVjx47J7Nmz5fjx49KtWzdp166dTJo0SU6ePOnJaQEAAKpusG9AQID069dPlixZIq+++qocOHBAnnnmGYmKipKHHnpIBxwAAACfDDLbt2+XJ554Qho3bqxbYlSIOXjwoKxbt0631vTp08d7JQUAAKggQDygQsucOXMkMzNT7rnnHpk/f77+6u//v1zUrFkzmTt3rsTExHhyegAAgMoLMjNnzpShQ4fKkCFDdGvMhTRq1EjS0tI8OT0AAEDlBZn9+/f/4nOCgoJk8ODBnpweAACg8sbIqG4lNcC3IrVv3rx5npwSAACgaoJMSkqKNGjQ4ILdSa+88oonpwQAAKiaIJOVlaUH9FbUtGlTfQwAAMBng4xqedmzZ895+3fv3i3169f3RrkAAAAqJ8g88MAD8tRTT8nGjRvl3LlzetuwYYM8/fTTMmDAAE9OCQAAUDWzll566SU5cuSI9OjRQ6/uq5SWlurVfBkjAwAAfDrIqKnV7733ng40qjupRo0act111+kxMgD+J2bMKruLAACO51GQKdOqVSu9AQAAGBNk1JgYdQuC9PR0OXHihO5WKk+NlwEAAPDJIKMG9aog06tXL2nXrp34+fl5v2QAAACVEWQWLVokixcv1jeKBAAAMGr6tRrs26JFC68WJDU1VbfsjBw50rWvqKhIhg8frtemqV27tvTv319yc3O9+nsBAEA1CzKjRo2SqVOnimVZXinEZ599Jn/729+kffv2bvsTExNl5cqV+h5OmzZtkmPHjkm/fv288jsBAEA17Vr65JNP9GJ4q1evlrZt20pgYKDb8aVLl17yuU6dOiUDBw6Ut99+WyZOnOjan5+fL2lpabJw4ULp3r2762aVsbGxsmXLFunSpYsnRQcAANW9RaZu3bpy7733ym233aZvHhkWFua2XQ7VdaQGDcfHx7vt37Fjh5w9e9Ztf+vWrSU6OloyMjIuer7i4mIpKChw2wAAgDN51CKjWka8QQ0a3rlzp+5aqignJ0ePxVGhqbzw8HB97OfuzD1hwgSvlA8AADiwRUb56aefZP369XpsS2Fhod6nxrCorqJLkZ2dradxv/POOxISEiLekpycrLulyjb1ewAAgDN51CJz9OhRufvuuyUrK0t35dx5551Sp04defXVV/XjWbNm/eI5VNeRWkyvY8eObgvtbd68Wd58801Zu3atlJSUSF5enlurjJq1FBERcdHzBgcH6w0AADifRy0yqiXlxhtvlB9//FHfZ6mMGjejVvu9FOqGk1988YXs2rXLtalzqoG/Zd+rQcTlz5eZmanDU1xcnCfFBgAADuNRi8y//vUv+fe//63HsJQXExMj33777SWdQ7XgqFWBy6tVq5ZeM6Zs/7BhwyQpKUnq1asnoaGhMmLECB1imLEEAAA8DjLq3kqqG6iib775RgcUb5k8ebL4+/vrhfBUl1VCQoLMmDHDa+eHObiTNADAa0HmrrvukilTpshbb72lH6sVedUg3/Hjx1/RbQs+/vhjt8dqEPD06dP1BgAA4JUg88Ybb+jWkTZt2ujbCDz44IOyf/9+vabMu+++68kpAQAAqibINGnSRHbv3q3XgdmzZ49ujVHjWdRA3fKDfwEAAHwuyOgfDAiQQYMGebc0AAAAlR1k5s+f/7PHH3roIU9OC6CaupLB3EdSe3m1LACqQZBR68iUp+6JdObMGT0du2bNmgQZAADguwviqYXwym9qjIxarK5bt24M9gUAAL5/r6WKWrZsKampqee11gAAAPh8kCkbAKxuHAkAAOCzY2RWrFjh9tiyLDl+/Li+2WPXrl29VTYAAADvB5m+ffu6PVYr+zZs2FC6d++uF8sDAADw6XstAQAAOGqMDAAAgM+3yCQlJV3ycydNmuTJrwAAAKicIPP555/rTS2Ed+211+p9+/btk6uuuko6duzoNnYGAADAp4JM7969pU6dOjJv3jy5+uqr9T61MN7DDz8st956q4waNcrb5QQAAPDOGBk1MyklJcUVYhT1/cSJE5m1BAAAfDvIFBQUyMmTJ8/br/YVFhZ6o1wAAACVE2Tuvfde3Y20dOlS+eabb/T2j3/8Q4YNGyb9+vXz5JQAAABVM0Zm1qxZ8swzz8iDDz6oB/zqEwUE6CDz+uuve3JKAACAqgkyNWvWlBkzZujQcvDgQb2vefPmUqtWLU9OBwAAUPUL4qn7K6lN3flahRh1zyUAAACfDjLff/+99OjRQ1q1aiX33HOPDjOK6lpi6jUAAPDpIJOYmCiBgYGSlZWlu5nK3H///bJmzRpvlg8AAMC7Y2Q++ugjWbt2rTRp0sRtv+piOnr0qCenBAAAqJoWmdOnT7u1xJT54YcfJDg42JNTAgAAVE2QUbchmD9/vts9lUpLS+W1116TO+64w5NTAgAAVE3XkgosarDv9u3bpaSkREaPHi1ffvmlbpH59NNPPTklAABA1QSZdu3a6btdv/nmm/rmkadOndIr+g4fPlwaN27sySkB+ICYMavsLgIAVG6QUSv53n333Xp13+eee+5yfxwAAMC+MTJq2vWePXu8VwIAAICqHOw7aNAgSUtL8/R3AgAA2DdG5qeffpLZs2fL+vXrpVOnTufdY2nSpEneKR0AAIC3gsyhQ4ckJiZG9u7dKx07dtT71KDf8tRUbAAAAJ8LMmrlXnVfpY0bN7puSTBt2jQJDw+vrPIBAAB4Z4xMxbtbr169Wq/yCwAAYMxg34sFGwAAAJ8NMmr8S8UxMIyJAQAARoyRUS0wQ4YMcd0YsqioSB577LHzZi0tXbr0ks43c+ZMvR05ckQ/btu2rYwbN0569uzpOv+oUaNk0aJFUlxcLAkJCTJjxgzG5AAAgMsPMoMHDz5vPZkr0aRJE0lNTdWDiFVImjdvnvTp00c+//xzHWoSExNl1apVsmTJEgkLC5Mnn3xS3wqB+zkBAADFz/KxgS716tWT119/XX73u99Jw4YNZeHChfp75euvv5bY2FjJyMiQLl26XNL5CgoKdAjKz8+X0NDQSi49Kgv3AMLFHEntZXcRAFSCS/38vqLBvt507tw53YWkZkHFxcXJjh079H2d4uPjXc9p3bq1REdH6yADAADg0cq+3vTFF1/o4KLGw9SuXVuWLVsmbdq0kV27dklQUJDUrVvX7flqfExOTs5Fz6fG0qitfKIDAADOZHuQufbaa3VoUU1H77//vh6Hs2nTJo/Pl5KSIhMmTBBf7+6gORwAgCtne9eSanVp0aKFvmeTCiEdOnSQqVOnSkREhJSUlEheXp7b83Nzc/Wxi0lOTtahqGzLzs6ugloAAIBqGWQqKi0t1V1DKtgEBgZKenq661hmZqZkZWXprqiLUVPD1aCg8hsAAHAmW7uWVOuJWjNGDeAtLCzUM5Q+/vhjWbt2rR6pPGzYMElKStIzmVQgGTFihA4xlzpjCQAAOJutQebEiRPy0EMP6RtRquDSvn17HWLuvPNOfXzy5Mni7+8v/fv3d1sQD2ZiCjUAwFFBJi0t7WePh4SEyPTp0/UGAADg82NkAAAALhVBBgAAGIsgAwAAjGX7gngAYBcWtQTMR4sMAAAwFkEGAAAYiyADAACMRZABAADGIsgAAABjEWQAAICxCDIAAMBYBBkAAGAsggwAADAWQQYAABiLIAMAAIxFkAEAAMYiyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAAAYiyADAACMRZABAADGIsgAAABjEWQAAICxCDIAAMBYBBkAAGAsggwAADBWgN0FAIArETNmlXG/90hqL6+WBajObG2RSUlJkZtuuknq1KkjjRo1kr59+0pmZqbbc4qKimT48OFSv359qV27tvTv319yc3NtKzMAAPAdtgaZTZs26ZCyZcsWWbdunZw9e1buuusuOX36tOs5iYmJsnLlSlmyZIl+/rFjx6Rfv352FhsAAPgIW7uW1qxZ4/Z47ty5umVmx44d8utf/1ry8/MlLS1NFi5cKN27d9fPmTNnjsTGxurw06VLF5tKDgAAfIFPDfZVwUWpV6+e/qoCjWqliY+Pdz2ndevWEh0dLRkZGRc8R3FxsRQUFLhtAADAmXwmyJSWlsrIkSOla9eu0q5dO70vJydHgoKCpG7dum7PDQ8P18cuNu4mLCzMtUVFRVVJ+QEAQDUOMmqszN69e2XRokVXdJ7k5GTdslO2ZWdne62MAADAt/jE9Osnn3xSPvzwQ9m8ebM0adLEtT8iIkJKSkokLy/PrVVGzVpSxy4kODhYbwAAwPlsbZGxLEuHmGXLlsmGDRukWbNmbsc7deokgYGBkp6e7tqnpmdnZWVJXFycDSUGAAC+JMDu7iQ1I+mDDz7Qa8mUjXtRY1tq1Kihvw4bNkySkpL0AODQ0FAZMWKEDjHMWAIAALYGmZkzZ+qvt99+u9t+NcV6yJAh+vvJkyeLv7+/XghPzUhKSEiQGTNm2FJeAADgWwLs7lr6JSEhITJ9+nS9AQAA+OSsJQAAgMtFkAEAAMYiyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsWy9aSQAVEcxY1Z5/LNHUnt5tSyA6WiRAQAAxiLIAAAAYxFkAACAsQgyAADAWAz2BYBqgkHGcCJaZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBaDfQ0cdHelA+8Y8AdU3/cOwGlokQEAAMYiyAAAAGMRZAAAgLEIMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwlq1BZvPmzdK7d2+JjIwUPz8/Wb58udtxy7Jk3Lhx0rhxY6lRo4bEx8fL/v37bSsvAADwLbYGmdOnT0uHDh1k+vTpFzz+2muvybRp02TWrFmydetWqVWrliQkJEhRUVGVlxUAAPieADt/ec+ePfV2Iao1ZsqUKfL8889Lnz599L758+dLeHi4brkZMGBAFZcWAAD4Gp8dI3P48GHJycnR3UllwsLCpHPnzpKRkXHRnysuLpaCggK3DQAAOJOtLTI/R4UYRbXAlKcelx27kJSUFJkwYYI4XcyYVXYXAQAA2/lsi4ynkpOTJT8/37VlZ2fbXSQAAFDdgkxERIT+mpub67ZfPS47diHBwcESGhrqtgEAAGfy2SDTrFkzHVjS09Nd+9R4FzV7KS4uztayAQAA32DrGJlTp07JgQMH3Ab47tq1S+rVqyfR0dEycuRImThxorRs2VIHm7Fjx+o1Z/r27WtnsQEAgI+wNchs375d7rjjDtfjpKQk/XXw4MEyd+5cGT16tF5r5tFHH5W8vDzp1q2brFmzRkJCQmwsNQCgqiYnHEnt5dWywHlsDTK33367Xi/mYtRqvy+++KLeAAAAjBkjAwAA8EsIMgAAwFgEGQAAYCyfXdkXAAAGCuOX0CIDAACMRZABAADGIsgAAABjEWQAAICxGOwLAKjUQbdAZaJFBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFgviAQDgRdyxu2rRIgMAAIxFkAEAAMYiyAAAAGMRZAAAgLEY7AsAcCQG3VYPtMgAAABjEWQAAICxCDIAAMBYBBkAAGAsBvuiygbPAQDgbbTIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAAAYiyADAACMRZABAADGYkE8AACq+R27Ywy+U7gRLTLTp0+XmJgYCQkJkc6dO8u2bdvsLhIAAPABPh9k3nvvPUlKSpLx48fLzp07pUOHDpKQkCAnTpywu2gAAMBmPh9kJk2aJI888og8/PDD0qZNG5k1a5bUrFlTZs+ebXfRAACAzXx6jExJSYns2LFDkpOTXfv8/f0lPj5eMjIyLvgzxcXFeiuTn5+vvxYUFHi9fKXFZ7x+TgCA/a7kM8Ouz4YCm8pcGZ+v5c9rWZa5Qea7776Tc+fOSXh4uNt+9fjrr7++4M+kpKTIhAkTztsfFRVVaeUEADhL2BQxTtgUZ/7ewsJCCQsLMzPIeEK13qgxNWVKS0vlhx9+kPr164ufn59XEqIKRdnZ2RIaGipO5PQ6Or1+CnU0n9Prp1BH8xVUYv1US4wKMZGRkT/7PJ8OMg0aNJCrrrpKcnNz3farxxERERf8meDgYL2VV7duXa+XTV0wJ74oq1MdnV4/hTqaz+n1U6ij+UIrqX4/1xJjxGDfoKAg6dSpk6Snp7u1sKjHcXFxtpYNAADYz6dbZBTVTTR48GC58cYb5eabb5YpU6bI6dOn9SwmAABQvfl8kLn//vvl5MmTMm7cOMnJyZHrr79e1qxZc94A4Kqiuq3UmjYVu6+cxOl1dHr9FOpoPqfXT6GO5gv2gfr5Wb80rwkAAMBH+fQYGQAAgJ9DkAEAAMYiyAAAAGMRZAAAgLEIMpdp+vTpEhMTIyEhIdK5c2fZtm2bmGjz5s3Su3dvvWKiWvF4+fLlbsfVGHA1U6xx48ZSo0YNfX+r/fv3i0nU7SpuuukmqVOnjjRq1Ej69u0rmZmZbs8pKiqS4cOH65Wfa9euLf379z9vAUZfNXPmTGnfvr1rISq1ttLq1asdUbeLSU1N1a/XkSNHOqaeL7zwgq5T+a1169aOqZ/y7bffyqBBg3Qd1PvJddddJ9u3b3fM+436TKh4DdWmrptTruG5c+dk7Nix0qxZM32NmjdvLi+99JLbfZBsu45q1hIuzaJFi6ygoCBr9uzZ1pdffmk98sgjVt26da3c3FzLNP/85z+t5557zlq6dKl6FVrLli1zO56ammqFhYVZy5cvt3bv3m399re/tZo1a2b997//tUyRkJBgzZkzx9q7d6+1a9cu65577rGio6OtU6dOuZ7z2GOPWVFRUVZ6erq1fft2q0uXLtYtt9ximWDFihXWqlWrrH379lmZmZnWs88+awUGBur6ml63C9m2bZsVExNjtW/f3nr66add+02v5/jx4622bdtax48fd20nT550TP1++OEHq2nTptaQIUOsrVu3WocOHbLWrl1rHThwwDHvNydOnHC7fuvWrdPvqxs3bnTENVRefvllq379+taHH35oHT582FqyZIlVu3Zta+rUqZbd15Egcxluvvlma/jw4a7H586dsyIjI62UlBTLZBWDTGlpqRUREWG9/vrrrn15eXlWcHCw9e6771qmUm82qq6bNm1y1Ul98Kt/kGX+85//6OdkZGRYJrr66qutv//9746rW2FhodWyZUv9AXHbbbe5gowT6qmCTIcOHS54zAn1+8tf/mJ169btosed+H6jXp/NmzfXdXPCNVR69eplDR061CqvX79+1sCBA22/jnQtXaKSkhLZsWOHbior4+/vrx9nZGSIkxw+fFgvPli+rup+F6orzeS65ufn66/16tXTX9X1PHv2rFs9VZN+dHS0cfVUzb6LFi3Sq16rLiYn1U1RzfK9evVyq4/ilHqq5nfVzXvNNdfIwIEDJSsryzH1W7FihV6Z/b777tNdvDfccIO8/fbbjn2/UZ8VCxYskKFDh+ruJSdcQ+WWW27Rtwfat2+ffrx792755JNPpGfPnrZfR59f2ddXfPfdd/rDouKKwurx119/LU6iXozKhepadsw06h5dalxF165dpV27dnqfqou6n1fFm4qaVM8vvvhCBxfVB6/63pctWyZt2rSRXbt2GV+3Miqg7dy5Uz777LPzjjnhGqo3+rlz58q1114rx48flwkTJsitt94qe/fudUT9Dh06pMdzqdvNPPvss/o6PvXUU7pe6vYzTnu/UeMN8/LyZMiQIfqxE66hMmbMGH2naxXC1M2c1efhyy+/rIO3Yud1JMigWlB/0asPBvUXhJOoDz8VWlRr0/vvv68/GDZt2iROkZ2dLU8//bSsW7dOD7B3orK/aBU1eFsFm6ZNm8rixYv1gEnTqT8iVIvMK6+8oh+rFhn1b3HWrFn69eo0aWlp+pqqFjYnWbx4sbzzzjuycOFCadu2rX7fUX8cqnrafR3pWrpEDRo00Cm04khz9TgiIkKcpKw+Tqnrk08+KR9++KFs3LhRmjRp4tqv6qKagdVfT6bWU/2l16JFC32XeDVLq0OHDjJ16lRH1E1RzfInTpyQjh07SkBAgN5UUJs2bZr+Xv2154R6lqf+cm/VqpUcOHDAEddRzWBRrYTlxcbGurrPnPR+c/ToUVm/fr388Y9/dO1zwjVU/vznP+tWmQEDBuhZZ3/4wx8kMTFRv+/YfR0JMpfxgaE+LFQfYfm/NNRj1bTvJGp6nXrhla+ralLcunWrUXVV45hViFHdLRs2bND1Kk9dz8DAQLd6qunZ6g3WpHqWp16TxcXFjqlbjx49dPeZ+uuvbFN/3avm7LLvnVDP8k6dOiUHDx7UAcAJ11F151Zc9kCNs1CtTk56v1HmzJmjxwGp8VxlnHANlTNnzuhxoeWpP+7Ve47t17FShxI7cPq1GoE9d+5c66uvvrIeffRRPf06JyfHMnEWyOeff6439TKYNGmS/v7o0aOuaXSqbh988IG1Z88eq0+fPkZNh1Qef/xxPRXw448/dpsaeebMGddz1LRINSV7w4YNelpkXFyc3kwwZswYPQNLTYVU10g99vPzsz766CPj6/Zzys9ackI9R40apV+j6jp++umnVnx8vNWgQQM9y84J9VPT5gMCAvT03f3791vvvPOOVbNmTWvBggWu5zjh/UbNYlXXSc3Sqsj0a6gMHjzY+tWvfuWafq2W7lCv09GjR1t2X0eCzGX661//ql+Qaj0ZNR17y5YtlonU+gYqwFTc1Iu1bCrd2LFjrfDwcB3eevToodcqMcmF6qc2tbZMGfUP7IknntDTltWb67333qvDjgnUVEi1Pod6LTZs2FBfo7IQY3rdLifImF7P+++/32rcuLG+juqDQj0uv8aK6fVTVq5cabVr106/l7Ru3dp666233I474f1GrY2j3l8uVG4nXMOCggL97059/oWEhFjXXHONXousuLjY9uvop/5TuW0+AAAAlYMxMgAAwFgEGQAAYCyCDAAAMBZBBgAAGIsgAwAAjEWQAQAAxiLIAAAAYxFkAACAsQgyAADAWAQZAABgLIIMAAAwFkEGAACIqf4PnRZ9R66sDnAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "titanic = sns.load_dataset('titanic')\n",
    "titanic[\"age\"].plot(kind='hist', bins=30)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9fa24be2",
   "metadata": {},
   "source": [
    "### The Plotting Methods (**`df.plot.<kind>`**)\n",
    "\n",
    "Instead of the `kind=` arguments, your can use the plotting methods directly by using the **`df.plot.<kind>`** syntax, which makes it easier to find other plot methods. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "f05685b9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: ylabel='Frequency'>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAESCAYAAAD38s6aAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIDNJREFUeJzt3Q1UVVX+//Evz+ADEBggIyiViab2YKWklRkTY9Zoumyc0QnLVZORJU5ZVNavR7RWaZbp1PIhV5nljFrW0sYwaSp8bCytGbJ0kkywGUNQAgTOf333f7jDRa/C9cK999z3a62z4J5zO2xO+GHzPfvsHWRZliUAANsJ9nYDAABtg4AHAJsi4AHApgh4ALApAh4AbIqABwCbIuABwKZCxeYaGhrkhx9+kM6dO0tQUJC3mwMAp00fX6qsrJTk5GQJDg4O3IDXcE9JSfF2MwDA40pKSqRbt26BG/Dac2+8ENHR0d5uDgCctoqKCtNxbcy3gA34xrKMhjsBD8BOTlV25iYrANgUAQ8ANkXAA4BNEfAAYFMEPADYFAEPADZFwAOATRHwAGBTtn/QCe2jvKpWKqvrTvm+zpGhEtshvF3aBAQ6Ah4eoeG+sfig/Fxb7/I9UeEhMrRXAgEPtBMCHh6j4X70JAEPoH1RgwcAmyLgAcCmCHgAsCmvBnyPHj3MdJfNt5ycHHO8urrafB4fHy+dOnWSMWPGSFlZmTebDAB+w6sBv3XrVjlw4IBjW79+vdk/duxY8zE3N1fWrFkjK1askMLCQrM60+jRo73ZZADwG14dRXPmmWc6vZ45c6acffbZcuWVV8rhw4dl4cKFsmzZMhk2bJg5vnjxYundu7ds2rRJBg0adMJz1tTUmK3pyicAEIh8pgZfW1srr732mtxyyy2mTLN9+3Y5duyYZGZmOt6Tnp4uqampUlRU5PI8+fn5EhMT49hYjxVAoPKZgF+9erWUl5fLxIkTzevS0lIJDw+X2NhYp/clJiaaY67k5eWZ3n/jpmuxAkAg8pkHnbQcM3z4cElOTj6t80RERJgNAAKdTwT8d999Jx988IGsXLnSsS8pKcmUbbRX37QXr6No9BgAwA9KNHrzNCEhQUaMGOHYN2DAAAkLC5OCggLHvuLiYtm3b59kZGR4qaUA4D+83oNvaGgwAZ+dnS2hof9rjt4gnTRpkkybNk3i4uIkOjpapkyZYsLd1QgaAIAPBbyWZrRXrqNnmps9e7YEBwebB5x06GNWVpa89NJLXmknAPibIMuyLLExHQevfw3oiBr9KwBto+RQlazdeeCks0l2DA+R4f26Skpch3ZtGxCoueYTNXgAgOcR8ABgUwQ8ANgUAQ8ANkXAA4BNEfAAYFMEPADYlNcfdILvK6+qlcrqOpfHg4NEausb2u3rqc6RoRLbIdxjXxOwIwIep6Rhu7H4oPzs4iGmuI7h0q9bTLt9vajwEBnaK4GAB06BgEeLaNi6eko1Kry+Xb8egJahBg8ANkXAA4BNEfAAYFMEPADYFAEPADZFwMMvBQV5uwWA72OYJPxOWEiw6DI1usjIqfBAFAIZAQ+/ExoSJFW1dbJl7yGXD0MpHohCoCPg4bd4GArw8Rr8/v37ZcKECRIfHy9RUVHSr18/2bZtm+O4Lhn78MMPS9euXc3xzMxM2b17t1fbDAD+wKsB/9NPP8ngwYMlLCxM1q5dK1999ZU8++yzcsYZZzje8/TTT8vcuXNlwYIFsnnzZunYsaNkZWVJdXW1N5sOAD7PqyWaWbNmSUpKiixevNixLy0tzan3PmfOHHnooYdk5MiRZt/SpUslMTFRVq9eLePGjTvunDU1NWZruvo4AAQir/bg33nnHbn44otl7NixkpCQIBdeeKG88sorjuN79+6V0tJSU5ZpFBMTIwMHDpSioqITnjM/P9+8p3HTXyAAEIi8GvB79uyR+fPnS8+ePeX999+XyZMny1133SWvvvqqOa7hrrTH3pS+bjzWXF5enhw+fNixlZSUtMN3AgC+x6slmoaGBtODf+qpp8xr7cHv2rXL1Nuzs7PdOmdERITZACDQebUHryNj+vTp47Svd+/esm/fPvN5UlKS+VhWVub0Hn3deAwA4IMBryNoiouLnfZ9/fXX0r17d8cNVw3ygoICp5umOpomIyOj3dsLAP7EqyWa3Nxcueyyy0yJ5sYbb5QtW7bIyy+/bDYVFBQkU6dOlSeeeMLU6TXwZ8yYIcnJyTJq1ChvNh0AfJ5XA/6SSy6RVatWmRujjz32mAlwHRY5fvx4x3umT58uR48eldtuu03Ky8tlyJAhsm7dOomMjPRm0wHA53l9qoLrrrvObK5oL17DXzcAgB9NVQAAaBsEPADYFAEPADZFwAOATRHwAGBTBDwA2BQBDwA2RcADgE0R8ABgUwQ8ANgUAQ8ANkXAA4BNEfAAYFMEPADYFAEPADZFwAOATRHwAGBTBDwA2BQBDwA25dWA/7//+z+z5mrTLT093XG8urpacnJyJD4+Xjp16iRjxoyRsrIybzYZAPyG13vw5513nhw4cMCxffzxx45jubm5smbNGlmxYoUUFhbKDz/8IKNHj/ZqewHAX4R6vQGhoZKUlHTc/sOHD8vChQtl2bJlMmzYMLNv8eLF0rt3b9m0aZMMGjTIC60FAP/h9R787t27JTk5Wc466ywZP3687Nu3z+zfvn27HDt2TDIzMx3v1fJNamqqFBUVuTxfTU2NVFRUOG0AEIi8GvADBw6UJUuWyLp162T+/Pmyd+9eufzyy6WyslJKS0slPDxcYmNjnf6bxMREc8yV/Px8iYmJcWwpKSnt8J0AgO/xaolm+PDhjs/79+9vAr979+7y1ltvSVRUlFvnzMvLk2nTpjleaw+ekAcQiNzqwe/Zs8fzLRExvfVzzz1XvvnmG1OXr62tlfLycqf36CiaE9XsG0VEREh0dLTTBgCByK2AP+ecc+Sqq66S1157zQxl9JQjR47It99+K127dpUBAwZIWFiYFBQUOI4XFxebGn1GRobHviYA2JVbAf/ZZ5+ZkoqWQrQ3/Yc//EG2bNnS6vPcc889Zvjjv/71L/n000/lhhtukJCQEPntb39r6ueTJk0yX+PDDz80N11vvvlmE+6MoAGANgr4Cy64QJ5//nkzLn3RokVm/PqQIUOkb9++8txzz8mPP/7YovN8//33Jsx79eolN954o3mgSYdAnnnmmeb47Nmz5brrrjMPOF1xxRXml8nKlSvdaTIABJwgy7Ks0z2JDk186aWXzA1OrZvr6BcN7FmzZplyizfpTVb9a0DH1VOPd0/JoSpZu/OAHK2tP+HxLp3C5dK0OCks/tHle1TH8BAZ3q+rpMR18KmvB/iblubaaQ2T3LZtm9xxxx0mxLXnriUXraGvX7/e9O5Hjhx5OqcHALT3MEkNc32qVG96XnvttbJ06VLzMTj4//++SEtLM+Pbe/TocTptAwC0d8DrQ0m33HKLTJw40WUJJiEhwUw1APi68qpaqayuO+X7OkeGSmyH8HZpE+C1gNfpBU5F6/DZ2dnunB5oVxruG4sPys8nqedHhYfI0F4JBDzsH/BantHpe8eOHeu0X2d9rKqqItjhdzTcT3bDFvBHbt1k1fleunTpcsKyzFNPPeWJdgEAvBHw+jSp3khtTueRaZwNEgDghwGvPfUvvvjiuP2ff/65eVgJAOCnAa9Pn951111mCoH6+nqzbdiwQe6++24ZN26c51sJAGifm6yPP/64mT/m6quvNisyqYaGBrnpppuowQOAPwe8DoF88803TdBrWUbnbu/Xr5+pwQMAbLDgh87drhsAwCYBrzV3nYpA52o/ePCgKc80pfV4AIAfBrzeTNWAHzFihJkiOCgoyPMtAwC0f8AvX77crJuqE4wBAGw0TFJvsuqyfQAAmwX8H//4R7OikwfWCkGAoZoH+HiJ5uOPPzYPOa1du1bOO+88szh2UyyrhxMJCwkW7RPoik2uBAeJ1NY737QH0I4BHxsbaxbIBlojNCRIqmrrZMveQy6n5o3rGC79usW0e9sAO3J7umBPmzlzplnTVUfozJkzx+yrrq425SC9qavrvmZlZZm1XxMTEz3+9eEbU/NGhTNlL+Apbq/JWldXJx988IH86U9/ksrKSrNP12E9cuRIq8+1detWc57+/fs77c/NzZU1a9aYeeYLCwvN+UePHu1ukwEgoLgV8N99952ZmkAX1c7JyZEff/zR7J81a5ZZeLs19BfC+PHj5ZVXXpEzzjjDsV9XC9cl/3T912HDhsmAAQPMXw6ffvqpbNq0yZ1mA0BAcSvgtYxy8cUXy08//WTmoWmkdXl9urU19BeEPjCVmZnptH/79u1y7Ngxp/3p6emSmpoqRUVFLs+npZyKigqnDQACkVs1+L/97W+mJ63j4Zvq0aOH7N+/v8Xn0dr6Z599Zko0zZWWlprz6w3dprT+rsdOttrUo48+2uI2AIBdudWD17lndD6a5r7//nvp3Llzi85RUlJi/hJ4/fXXJTIyUjxFb9Rqeadx068DAIHIrYC/5pprHCNdlM5Fo7X0Rx55pMXTF2gJRicqu+iii8yc8rrpjdS5c+eaz7WnXltbK+Xl5U7/XVlZmSQlJbk8b0REhERHRzttABCI3CrRPPvss2bIYp8+fcxQxt/97neye/dusxD3G2+80aJz6GIhO3fudNp38803mzr7fffdJykpKeYBKq3pjxkzxhwvLi42a75mZGS402w0U15VK5XVdSd9Dw8eAQEW8N26dTMLfWgNXddm1d77pEmTzGiYpjddT0ZLOToTZVMdO3Y0a7o27tdzTps2TeLi4kxPfMqUKSbcBw0a5E6z0YyG+8bigy4fOlI8eAQE4IIfWkaZMGGCtKXZs2dLcHCw6cE3fdAJ7fPQkeLBo/9hHh0ERMAvXbr0pMd1bVZ3bNy40em13nydN2+e2QBfn0dHdY4MldgOzqPLAL9b8KMpHa9eVVVlhjV26NDB7YAH/HkenajwEBnaK4GAh38HvD7g1JzeZJ08ebLce++9nmgX4JclLcAWc9E017NnTzNhWPPePQDAzwO+8carTggGAPDTEs0777zj9FpXdjpw4IC8+OKLMnjwYE+1DQDQ3gE/atQop9f6JOuZZ55pZn3Uh6AAAH4a8DoXDQAggGrwAAA/78Hr9AEtpQt2AAD8JOD//ve/m00fcOrVq5fZ9/XXX0tISIiZHbJpbR4A4EcBf/3115vJwl599VXHMnv68JPOBnn55ZebhbIBAH5Yg9eRMrpyUtM1VPXzJ554glE0AODPAa/rnDYutN2U7qusrPREuwAA3gh4XVxbyzErV640y/Tp9pe//MXM3z569OjTbRPgMdwGQiBzqwa/YMECueeee8xKTnqj1ZwoNNQE/DPPPOPpNgJtNsUvK1bBztwKeJ0SWBfe0DD/9ttvzb6zzz7brMgE+NMUv6xYBTtze0UnpfPP6HbFFVeYpfp0ThqGRsKfpvhlxSrYmVs1+P/85z9m0exzzz1Xrr32WhPySks0DJEEAD8O+NzcXAkLC5N9+/aZck2j3/zmN7Ju3TpPtg8A0J4B/9e//lVmzZol3bp1O27Rj++++67F55k/f770799foqOjzZaRkSFr1651HK+urpacnByJj4+XTp06mcW3y8rK3GkyAAQctwL+6NGjTj33RocOHZKIiIgWn0d/QegqUNu3b5dt27aZ6YZHjhwpX375peMvhTVr1siKFSuksLDQLCbCMEwAaMOA1+kIli5d6nitN1Z1CuGnn35arrrqqlZNeaA1fO35az3/ySefND31TZs2yeHDh2XhwoVmsjIN/gEDBsjixYvl008/NccBAG0wikaDXG+yaq+7trZWpk+fbnrd2oP/5JNP3Dml1NfXm566/nWgpRrt1esY+8zMTMd70tPTJTU1VYqKimTQoEEnPE9NTY3Zmj51CwCByK2A79u3r5k9Upfo00nHjhw5YkonWi/v2rVrq861c+dOE+hab9fe+6pVq6RPnz6yY8cOCQ8Pl9jYWKf3JyYmSmlpqcvz6Rw5jz76qHhCeVWtVFbXnfQ9nSNDJbZDuEe+HgB4NeC1V/2rX/3KPM364IMPnnYDdLphDXMtyfz5z3+W7OxsU293V15entN89dqDT0lJcetcGu4biw+6fEgmKjxEhvZKIOAB2CPgdXjkF1984bEGaC/9nHPOMZ9rnX3r1q3y/PPPmyGXWv4pLy936sXrKJqkpCSX59ObvK250Xs6D8kAgO1usk6YMMHcAG0LerNWa+ga9vrLpKCgwHGsuLjYjL3Xkg5OXV7SOVhcbft/qmIOFsDm3KrB19XVyaJFi+SDDz4wQdx8DpqWLtOn5ZThw4ebG6c6zfCyZctk48aN8v7770tMTIx5MlbLLXFxcWac/JQpU0y4u7rBipaXl5iDBbC/VgX8nj17pEePHrJr1y7H0nx6s7Wp1sxFc/DgQbnpppvMVAca6PrQk4b7L3/5S3N89uzZEhwcbB5w0l59VlaWmeQMLcMcLEBga1XA63h1DeMPP/zQvNY6+dy5c83IFnecqswTGRkp8+bNMxtgFy0ZnaUYoYV2DXidLbIpnVZAx60D8Fz5TDFCC16fLrh54ANoGUZnwedG0Wh9vXmNnfnfAcAmJZqJEyc6xpnr06e33377caNodK1WAIAfBbw+Zdp8PDwAwAYBr7M5AgBs/CQrAMD3EfAAYFMEPADYFAEPADZFwAOATRHwAGBTBDwA2BQBDwA2RcADgE0R8ABgUwQ8ANgUAQ8ANkXAA4BNeTXg8/Pz5ZJLLpHOnTtLQkKCjBo1SoqLi53eo3PO5+TkSHx8vHTq1MkswF1WVua1NgMn48n1b1hLB15dsu90FRYWmvDWkK+rq5MHHnhArrnmGvnqq68ci4jk5ubKe++9JytWrJCYmBi58847ZfTo0fLJJ594s+nAccJCgkVXsSw5VOXyPcFBIrX1DR45l2JhbvhswK9bt87p9ZIlS0xPfvv27XLFFVfI4cOHZeHChbJs2TIZNmyYY0763r17y6ZNm2TQoEFeajlwvNCQIKmqrZMtew+5XFA7rmO49OsW45FzsTA3fDrgm9NAV3FxceajBv2xY8ckMzPT8Z709HRJTU2VoqKiEwZ8TU2N2RpVVFS0S9uBliyoHRXeuoW2WZwbtrjJ2tDQIFOnTpXBgwdL3759zb7S0lIJDw+X2NhYp/cmJiaaY67q+lrKadxSUlLapf0A4Gt8JuC1Fr9r1y5Zvnz5aZ0nLy/P/CXQuJWUlHisjQDgT3yiRKM3Tt9991356KOPpFu3bo79SUlJUltbK+Xl5U69eB1Fo8dOJCIiwmwAEOi82oO3LMuE+6pVq2TDhg2SlpbmdHzAgAESFhYmBQUFjn06jHLfvn2SkZHhhRYDgP8I9XZZRkfIvP3222YsfGNdXWvnUVFR5uOkSZNk2rRp5sZrdHS0TJkyxYQ7I2gAwIcDfv78+ebj0KFDnfbrUMiJEyeaz2fPni3BwcHmAScdHZOVlSUvvfSSV9oLAP4k1NslmlOJjIyUefPmmQ0A4IejaAAAnkXAA4BNEfAAYFMEPADYFAEP+DGmFIbPP8kKoPWYUhinQsADfoophXEqBDzg55hSGK4Q8ACM8qpaqayuO+l7KPf4FwIegKHhvrH4IOUeGyHgTxOjGGCnn1HKPfZCwLfDKIaW/mnbkj+RW3ouoDU/oy1dDBz+hYBv41EMrfnT9lR/IrfmXEBrfkZbuhg4/AsB7wGe/LOWP5HRFk71c9XaxcDhH3iSFQBsioAHAJsi4AHApgh4ALApAh4AbMqrAf/RRx/J9ddfL8nJyRIUFCSrV68+bs3Whx9+WLp27SpRUVGSmZkpu3fv9lp7AcCfeDXgjx49Kueff77LBbWffvppmTt3rixYsEA2b94sHTt2lKysLKmurm73tgKAv/HqOPjhw4eb7US09z5nzhx56KGHZOTIkWbf0qVLJTEx0fT0x40b186tBQD/4rM1+L1790ppaakpyzSKiYmRgQMHSlFRkcv/rqamRioqKpw2X8CcNQDam88+yarhrrTH3pS+bjx2Ivn5+fLoo4+Kv80HwlwgAAIm4N2Vl5cn06ZNc7zWHnxKSorPzwfCXCAAAibgk5KSzMeysjIziqaRvr7gggtc/ncRERFm87f5QJgLBEDABHxaWpoJ+YKCAkega29cR9NMnjzZ280DcBKsDuUbvBrwR44ckW+++cbpxuqOHTskLi5OUlNTZerUqfLEE09Iz549TeDPmDHDjJkfNWqUN5sN4BRYHco3eDXgt23bJldddZXjdWPtPDs7W5YsWSLTp083Y+Vvu+02KS8vlyFDhsi6deskMjLSi60G4IkpihlZZvOAHzp0qBnv7oo+3frYY4+ZDUDgrTRFGcemNXgA9tWSkWWUcU4fAQ+gxTxdVmEFs7ZFwANoERbw9j8EPIAWYQFv/0PAA2gVFvD2Hz472RgA4PQQ8ABgUwQ8ANgUNXgAAaG8BfPj2O3hKgIeQECoPMX8OHZ8uIqAB+CzeLDq9BDwAPz6wSq7lVU8iYAH4NcPVtmtrOJJBLwfYppVBJJAK6t4EgHvZ1jAG0BLEfB+hgW8AbQUAe+nWMAbwKnwJCsA2BQBDwA2RcADgE1HqflFDX7evHnyzDPPSGlpqZx//vnywgsvyKWXXurtZgGwmTAPLgbuC3Pf+HzAv/nmmzJt2jRZsGCBDBw4UObMmSNZWVlSXFwsCQkJ3m4eABsJ9eBi4L4w943PB/xzzz0nt956q9x8883mtQb9e++9J4sWLZL777//uPfX1NSYrdHhw4fNx4qKilZ/7cqKKpFjVRJ87MT/g6yaOjlSGXrS97T0fe19LtoeGG0PhGslQSFypKJCKkLrTuvfc9Ov+fPRStfBfEy/XmSLvt5Jz/Pfc1W24FzNNeaZpX9unIzlw2pqaqyQkBBr1apVTvtvuukm69e//vUJ/5tHHnlEv2M2NjY2y+5bSUnJSTPUp3vw//73v6W+vl4SExOd9uvrf/7znyf8b/Ly8kxJp1FDQ4McOnRI4uPjJaiFd0/0t2NKSoqUlJRIdHT0aX4X9sF1cY1r4xrXxvPXRnvulZWVkpycfNL3+XTAuyMiIsJsTcXGxrp1Lr3g/EAej+viGtfGNa6NZ69NTEyMfw+T7NKli4SEhEhZWZnTfn2dlJTktXYBgD/w6YAPDw+XAQMGSEFBgVPJRV9nZGR4tW0A4Ot8vkSj9fTs7Gy5+OKLzdh3HSZ59OhRx6iatqAlnkceeeS4Uk+g47q4xrVxjWvjvWsTpHdaxce9+OKLjgedLrjgApk7d64ZEw8A8POABwDYrAYPAHAfAQ8ANkXAA4BNEfAAYFME/AmmJu7Ro4dERkaakTpbtmyRQJOfny+XXHKJdO7c2czYOWrUKDN7Z1PV1dWSk5NjpoDo1KmTjBkz5rgH0uxu5syZZvqLqVOnOvYF8nXZv3+/TJgwwXzvUVFR0q9fP9m2bZvjuI7nePjhh6Vr167meGZmpuzevVvsrr6+XmbMmCFpaWnm+z777LPl8ccfd5oorM2ujQfnBvN7y5cvt8LDw61FixZZX375pXXrrbdasbGxVllZmRVIsrKyrMWLF1u7du2yduzYYV177bVWamqqdeTIEcd7br/9dislJcUqKCiwtm3bZg0aNMi67LLLrECxZcsWq0ePHlb//v2tu+++2wr063Lo0CGre/fu1sSJE63Nmzdbe/bssd5//33rm2++cbxn5syZVkxMjLV69Wrr888/NxMGpqWlWT///LNlZ08++aQVHx9vvfvuu9bevXutFStWWJ06dbKef/75Nr82BHwTl156qZWTk+N4XV9fbyUnJ1v5+flWIDt48KCZua6wsNC8Li8vt8LCwswPaqN//OMf5j1FRUWW3VVWVlo9e/a01q9fb1155ZWOgA/k63LfffdZQ4YMcXm8oaHBSkpKsp555hnHPr1eERER1htvvGHZ2YgRI6xbbrnFad/o0aOt8ePHt/m1oUTzX7W1tbJ9+3bzp1Gj4OBg87qoqEgCWeOc+nFxceajXqdjx445Xav09HRJTU0NiGulJZgRI0Y4ff+Bfl3eeecd87T52LFjTVnvwgsvlFdeecVxfO/eveZBxabXRifL0jKo3a/NZZddZqZX+frrr83rzz//XD7++GMZPnx4m18bn5+qwJenJg4EOveP1pgHDx4sffv2Nfv0h1HnCWo+S6deKz1mZ8uXL5fPPvtMtm7detyxQL4ue/bskfnz55upRR544AFzfe666y5zPXSqkcbv/0T/vux+be6//34zLbD+stfJEzVnnnzySRk/frw53pbXhoDHKXuru3btMj2OQKdzdt99992yfv16cxMezh0B7cE/9dRT5rX24PXnRldg04APZG+99Za8/vrrsmzZMjnvvPNkx44dptOkc7m39bWhRPNfTE18vDvvvFPeffdd+fDDD6Vbt26O/Xo9tKRVXl4eUNdKSzAHDx6Uiy66SEJDQ81WWFho5kbSz7XHFYjXRenojz59+jjt6927t+zbt8983vj9B+K/r3vvvdf04seNG2dGFv3+97+X3NxcM1qtra8NAf9fTE38P3rzXcN91apVsmHDBjO8qym9TmFhYU7XSodR6j9mO1+rq6++Wnbu3Gl6YI2b9lr1T+3GzwPxuigt4TUfSqs15+7du5vP9WdIw6rptdGyxebNm21/baqqqsz9vKa0M6n50ubX5rRu0dpwmKTeuV6yZIn11VdfWbfddpsZJllaWmoFksmTJ5shWxs3brQOHDjg2KqqqpyGA+rQyQ0bNpjhgBkZGWYLNE1H0QTyddFho6GhoWZI4O7du63XX3/d6tChg/Xaa685DQXUf09vv/229cUXX1gjR44MiGGS2dnZ1i9+8QvHMMmVK1daXbp0saZPn97m14aAb+aFF14w/0B1PLwOm9y0aZMVaFwt8Ktj4xvpD94dd9xhnXHGGeYf8g033GB+CQR6wAfydVmzZo3Vt29f00lKT0+3Xn75ZafjOhxwxowZVmJionnP1VdfbRUXF1t2V1FRYX5GNFciIyOts846y3rwwQetmpqaNr82TBcMADZFDR4AbIqABwCbIuABwKYIeACwKQIeAGyKgAcAmyLgAcCmCHgAsCkCHgBsioAHAJsi4AFA7On/Ac0D5O96p62oAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "titanic = sns.load_dataset('titanic')\n",
    "titanic.head()\n",
    "titanic[\"age\"].plot.hist(bins=30, alpha=0.5, grid=False, edgecolor='white', figsize=(4, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56d102a1",
   "metadata": {},
   "source": [
    "In the Python shell, you hit the tab key after df.plot., and in Jupyter, you just type til the dot and the menu with the methods will show up."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da5e8773",
   "metadata": {},
   "source": [
    "```bash\n",
    "(.venv) tcn85✪mstː~/workspace/dsm$ python\n",
    "Python 3.13.7 (main, Aug 14 2025, 11:12:11) [Clang 17.0.0 (clang-1700.0.13.3)] on darwin\n",
    "Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n",
    "```\n",
    "```python\n",
    ">>> import pandas as pd\n",
    ">>> df = pd.DataFrame()\n",
    ">>> df.plot.<TAB>\n",
    "df.plot.area(     df.plot.box(      df.plot.hist(     df.plot.pie(      \n",
    "df.plot.bar(      df.plot.density(  df.plot.kde(      df.plot.scatter(  \n",
    "df.plot.barh(     df.plot.hexbin(   df.plot.line(  \n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b642743e",
   "metadata": {},
   "source": [
    "### Sample Plots\n",
    "\n",
    "For example, here we have a piece of randomly generated time series data to plot using `.plot()`, which by default gives you a **line plot**. Because the index consists of dates, `.plot()` calls `gcf().autofmt_xdate()` to try to format the x-axis. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f18aac17",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.872176Z",
     "iopub.status.busy": "2026-08-31T06:00:44.872111Z",
     "iopub.status.idle": "2026-08-31T06:00:44.922162Z",
     "shell.execute_reply": "2026-08-31T06:00:44.921972Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Random Walk Simulation')"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "np.random.seed(42)  ### for reproducibility\n",
    "n = 1000            ### number of time points\n",
    "ts = pd.Series(np.random.randn(n), index=pd.date_range(\"2023-01-01\", periods=n))\n",
    "ts = ts.cumsum()    ### cumulative sum to create a random walk\n",
    "\n",
    "ax = ts.plot(kind=\"line\", figsize=(4, 3), fontsize=8)  ### plot the entire time series\n",
    "ax.set_title(\"Random Walk Simulation\", fontsize=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "463949bb",
   "metadata": {},
   "source": [
    "For DataFrames, `.plot()` plots all of the columns with labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "e969f745",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.923213Z",
     "iopub.status.busy": "2026-08-31T06:00:44.923151Z",
     "iopub.status.idle": "2026-08-31T06:00:44.984228Z",
     "shell.execute_reply": "2026-08-31T06:00:44.984042Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                   A         B         C         D\n",
      "2023-01-01  1.399355  0.924634  0.059630 -0.646937\n",
      "2023-01-02  2.097579  1.318119  0.954824 -0.011765\n",
      "2023-01-03  3.147131  0.782884  2.272218  0.185835\n",
      "2023-01-04  5.222392  0.093696  4.008181  0.383745\n",
      "2023-01-05  4.570974 -0.390190  3.687834  0.807911\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(42)  ### for reproducibility\n",
    "n = 1000            ### number of time points\n",
    "ts = pd.Series(data = np.random.randn(n), index=pd.date_range(\"2023-01-01\", periods=n))\n",
    "ts = ts.cumsum()    ### cumulative sum to create a random walk\n",
    "df = pd.DataFrame(data = np.random.randn(1000, 4), index=ts.index, columns=list(\"ABCD\"))\n",
    "df = df.cumsum()\n",
    "print(df.head())\n",
    "plt.figure();\n",
    "df.plot(kind=\"line\", figsize=(4, 3), lw=1, fontsize=8);  ### plot all columns together\n",
    "plt.title(\"Random Walks for A, B, C, D\", fontsize=10);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "862c5d8c",
   "metadata": {},
   "source": [
    "Or you can pick columns of your choice to plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4b801004",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:44.985272Z",
     "iopub.status.busy": "2026-08-31T06:00:44.985215Z",
     "iopub.status.idle": "2026-08-31T06:00:45.021489Z",
     "shell.execute_reply": "2026-08-31T06:00:45.021295Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          B         C  A\n",
      "0  0.785185 -1.777681  0\n",
      "1  1.499931 -2.011405  1\n",
      "2  2.207388 -1.234473  2\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df1 = pd.DataFrame(np.random.randn(1000, 2), columns=[\"B\", \"C\"]).cumsum()\n",
    "df1[\"A\"] = pd.Series(data = list(range(len(df1))))\n",
    "print(df1.head(3))\n",
    "df1.plot(x=\"A\", y=\"B\", figsize=(4, 3), fontsize=8, title=\"B (line plot)\");"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "03312444",
   "metadata": {},
   "source": [
    "Or, similarly,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "634b410b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          B         C\n",
      "0  0.765402  1.073413\n",
      "1  1.264092 -0.869085\n",
      "2  1.108670 -2.024793\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df1 = pd.DataFrame(\n",
    "    data=np.random.randn(1000, 2),\n",
    "    columns=[\"B\", \"C\"]\n",
    ").cumsum()\n",
    "\n",
    "print(df1.head(3))\n",
    "\n",
    "df1.plot(y=\"B\", figsize=(4, 3), fontsize=8, title=\"B (line plot)\");\n",
    "# df1.plot(y=\"B\", figsize=(4, 3), fontsize=8, title=\"B (line plot)\", xlabel=\"Index\", ylabel=\"Value\");"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08c0d65f",
   "metadata": {},
   "source": [
    "So far we have been seeing the default `line` plots. A histogram can be create with `pd.plot(kind=\"hist\")`. Here we use the **`kind=`** keyword argument to specify the type of plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "537793c4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:45.022536Z",
     "iopub.status.busy": "2026-08-31T06:00:45.022476Z",
     "iopub.status.idle": "2026-08-31T06:00:45.047664Z",
     "shell.execute_reply": "2026-08-31T06:00:45.047496Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                   A         B         C         D\n",
      "2023-01-01  1.399355  0.924634  0.059630 -0.646937\n",
      "2023-01-02  2.097579  1.318119  0.954824 -0.011765\n",
      "2023-01-03  3.147131  0.782884  2.272218  0.185835\n",
      "2023-01-04  5.222392  0.093696  4.008181  0.383745\n",
      "2023-01-05  4.570974 -0.390190  3.687834  0.807911\n",
      "A    3.147131\n",
      "B    0.782884\n",
      "C    2.272218\n",
      "D    0.185835\n",
      "Name: 2023-01-03 00:00:00, dtype: float64\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWUAAAEgCAYAAABsEGJkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGfRJREFUeJzt3Q1wVNX5x/EnIbgQIElBaIJ5I4Q3gYZQUylYhZkCGsuLYnlprYCEl6GUtqDSVBECaGyLWhxLAYOowzSVAYqUih1ooRMrUkAiFhFJSkiivDgKCUKIebn/eU7/2SZkE1iysCfZ72fmmL13z949e1d+e/ace+8GOY7jCADACsH+bgAA4H8IZQCwCKEMABYhlAHAIoQyAFiEUAYAixDKAGARQhkALEIoA4BFCGX43eLFi2XAgAF+eW49oXXGjBnSsWNHCQoKktzc3Kt63CuvvCIRERF11q1Zs0ZiYmIkODhYfvvb39a5r6CgoM72d+/ebZbPnTvnk9dRsz0tY8eO9eqx8fHx7sf6qj24doRygJkyZYr7H6CWTp06yd133y2HDh2S5uLygGuKt956ywTstm3b5OTJk9KvX79r2k5paanMmTNHFixYIJ988okJ+to0rJuy/at19OhR83pqZGZmSkpKinTo0EG6dOliAlvr1LZv3z7ZtGnTdW0Xrh6hHIA0hDUgtPztb3+TkJAQ+d73vtekbX711VfSHOXn50tUVJQMHjxYIiMjzb64FoWFhVJRUSH33nuv2V5oaGid+1u1atWk7V8tDd7aPfh//OMf8uMf/1jeffdd2bFjh2njiBEj5MKFC+46nTt3Nt8UYAdCOQC5XC4TEFp02OAXv/iFFBUVyWeffeauoz2+nj17mnBJSEiQhQsXmn/Qlw85ZGVlSbdu3aRNmzaNfs3fsmWL9OjRw9QbOXKkeb6GVFdXy5IlSyQ6Otq0VZ9He7Q19PlUcnKy6TEPHTq0wW1pKH3rW98y29Gw1NdaWVnp/tbwk5/8xASqbke/xjdEX0dsbKzZH/fdd598/vnnde7r37+/ua37SrelvXlve/faW+3bt69pq7bl2WefrXN/eXm5eV+01611EhMTZe3atdIY3W/6OnW7SUlJpq36eg8cONDo4+A/hHKA+/LLL2X9+vXmH7gOZdTQr7v6D/jDDz+UFStWyEsvvSTPP/98ncfm5eWZINm8eXOjYXPx4kV56qmn5LXXXpN//vOfZtxy4sSJDdbX59NAWr58uRlW0RAfPXq0HDt2zNz/r3/9y/zduXOn6e3r83uiwwipqanm6/v7778vv//9702ILVu2zP08NeGv29Gv8Z7s3btXpk2bZoYn9HUOGzbMvQ01YcIE05aatum2NDi9oSE5fvx4s18++OAD86GnH4S1hyIeeughyc7OlhdeeEGOHDkiq1evlvbt23v1PCUlJeYvPWOL6aU7ETgmT57stGrVymnXrp0p+r9AVFSUc+DAgUYf95vf/Mb55je/6V5etGiR07p1a+fMmTONPm7dunXmOd599133uiNHjph1e/fudW8rKSnJfX/Xrl2dp556qs52UlJSnNmzZ5vbx48fN48/ePBgo8/9y1/+0unVq5dTXV3tXve73/3Oad++vVNVVWWWn3/+eScuLq7R7UyaNMlJTU2ts27ChAlOeHi4e1nbom3StnlyeZt37dplls+ePWuWf/CDHzjDhw+v85hHH33UufXWW83to0ePmvo7duzwuP3Lt+eJvuZ7773XGTJkyDU9HjcGPeUApD097fFp0Z6d9kTvueceOXHihLvO66+/LkOGDDFDHNobe+KJJ8zX3tri4uLMeOSV6Diq9lZr9O7d2wxpaG/P04TZp59+ap67Nl32VL8xWv/b3/62GTaovR39dlBcXOzVdm6//fY663S7vqTP4ek167eDqqoq817puPRdd911zc+hY8v//ve/5Y9//KMPWozrhVAOQO3atTPDFVo0LHVcWCd+dIhC7dmzR374wx+ar/56VMLBgwfl8ccfrzeZp9vBjdG2bdsmPV6HXvS93LVrlxmugb0IZZiepB5bW1ZWZpbfeecd0wvWIL7tttvMBF3tXrS3dGJt//797mU9JEvHlfv06VOvblhYmHTt2tWMPdemy7feequ5fdNNN5m/2oNsjG5fP2Bq/7iObkfHy70JJt2OjivXpkcz+JI+h6fXrJOt2kPWiUSdANWJS2/oa9dA/tOf/iR///vf3ZOksBehHIB0Fv/UqVOm6NdmPQJBv9KPGjXK3K8hrEMV+jVXDxnTiSX9R32tWrdubZ5Dg00ntPRogEGDBpmjIjx59NFH5Ve/+pUZQtEA1yMm9Ov7T3/6U/dhX9pz1CMLTp8+7Z68utzs2bPNUR763B999JG88cYbsmjRIpk3b575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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(df.head())                ### df is a DataFrame with 4 columns (A, B, C, D) and 1000 rows\n",
    "print(df.iloc[2])               ### df.iloc[2] is a Series with 4 values (one for each column)\n",
    "# plt.figure();\n",
    "df.iloc[2].plot(kind=\"bar\", figsize=(4, 3),     ### plot the 3rd row of df as a bar plot\n",
    "        title=\"Bar plot of df.iloc[2] (using 'kind' argument)\", \n",
    "        edgecolor=\"white\",\n",
    "        alpha=0.9,\n",
    "        fontsize=8);\n",
    "plt.title(\"Bar plot of df.iloc[2]\", fontsize=10);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7a856f51",
   "metadata": {},
   "source": [
    "Another example of using the `.plot(kind=)` syntax to generate plots. In this case, the time series dataset you generate earlier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "96ced8fe",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:45.048663Z",
     "iopub.status.busy": "2026-08-31T06:00:45.048610Z",
     "iopub.status.idle": "2026-08-31T06:00:45.084666Z",
     "shell.execute_reply": "2026-08-31T06:00:45.084470Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023-01-01    0.496714\n",
      "2023-01-02    0.358450\n",
      "2023-01-03    1.006138\n",
      "Freq: D, dtype: float64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Axes: title={'center': 'Histogram of ts'}, ylabel='Frequency'>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(ts.head(3))\n",
    "ts.plot(kind=\"hist\", bins=30, figsize=(4, 3),           ### plot a histogram of the time series, 30 intervals\n",
    "        title=\"Histogram of ts\",\n",
    "        edgecolor=\"white\",\n",
    "        alpha=0.9)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad668407",
   "metadata": {},
   "source": [
    "The same plot can be produced using the **`plot.hist()`** method. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d18642e5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:00:45.085694Z",
     "iopub.status.busy": "2026-08-31T06:00:45.085642Z",
     "iopub.status.idle": "2026-08-31T06:00:45.119607Z",
     "shell.execute_reply": "2026-08-31T06:00:45.119419Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: title={'center': 'Histogram of ts (using method)'}, ylabel='Frequency'>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ts.plot.hist(bins=30, figsize=(4, 3),\n",
    "             title=\"Histogram of ts (using method)\",\n",
    "             edgecolor=\"white\",\n",
    "             alpha=0.9)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32dfdfb3",
   "metadata": {},
   "source": [
    "For example, for histograms:\n",
    "    \n",
    "    1. `df.plot.hist()`: Uses Pandas’s unified `.plot()` interface (which wraps Matplotlib) to draw a histogram.\n",
    "    2. `df.plot(kind='hist')`: The same as df.plot.hist(); a generic form of the same call.\n",
    "    3. Pandas has two top-level plotting methods: `df.hist()` (a quick wrapper around Matplotlib’s `plt.hist()` for all numeric columns) and `df.boxplot()`.\n",
    "\n",
    "\n",
    "\n",
    "| # | Method                 | Applies to          | Subplots              | Overlays Multiple Columns | Based On                 | Typical Use                           |\n",
    "|:-:|:---------------------- |:------------------- |:--------------------- |:------------------------- |:------------------------ |:------------------------------------- |\n",
    "| 1 | `df.hist()`            | DataFrame only      | Yes (grid of plots) | No                      | `plt.hist()`             | Quick overview of all numeric columns |\n",
    "| 2 | `df.plot.hist()`       | DataFrame or Series | Single plot         | Yes                     | Pandas `.plot()` wrapper | Custom, combined histograms           |\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4cd22161",
   "metadata": {},
   "source": [
    "## Custom parameters\n",
    "\n",
    " Most plotting calls accept `Matplotlib` keyword arguments and return a Matplotlib Axes object for further customization. Often used parameters from pandas API reference ([pandas.DataFrame.plot](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html)) include:\n",
    "   1. `data`: Series or DataFrame. The object for which the method is called.\n",
    "   2. `x`: label or position, default None. Only used if data is a DataFrame.\n",
    "   3. `y`: label, position or list of label, positions, default None. Allows plotting of one column versus another. Only used if data is a DataFrame.\n",
    "   4. `kind`: str. The kind of plot to produce: line (default), bar, barh, hist, box, kde/density, area, pie, scatter (DataFrame only), hexbin (DataFrame only).\n",
    "   5. `ax`\n",
    "   6. `figsize` \n",
    "   7. `use_index`\n",
    "   8. `title`\n",
    "   9. ticks (xticks and yticks): sequence. Values to use for ticks. \n",
    "   10. lim (`xlim` and `ylim`): 2-tuple/list. Set the limits of the axes.    \n",
    "   11. label (`xlabel` and `ylabel`: Name to use for the label on axis (default to index name).\n",
    "   12. `coloarmap`: str or matplotlib colormap object\n",
    "   13. `stacked`: bool, default False in line and bar plots, and True in area plot. If True, create stacked plot.\n",
    "   14. **kwargs ([matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html)): \n",
    "       1.  `lw` \n",
    "       2.  `alpha` \n",
    "  \n",
    "\n",
    "3. **style sheets**: Style the plots to look globally with `plt.style.use(...)`.\n",
    "  \n",
    "4. **color & size**: \n",
    "    - For scatter plots you can color by a column (`c`) or \n",
    "    - size by an array (`s=df['col']*scale`) and \n",
    "    - use `cmap` for colormaps.\n",
    "\n",
    "5. **fine-tuning**: For large or dense data, consider hexbin or KDE plots instead of scatter.\n",
    "\n",
    "6. **Plot Types**\n",
    "The `pandas.DataFrame.plot` API lists 11 plots to be used with the `kind` parameter: The kind of plot to produce: `line`(default), `bar`, `barh` (horizontal bar plot), `hist`, `box`, `kde` (`density`), `area`, `pie`, `scatter`, `hexbin`. These plots can be summarized as:\n",
    "\n",
    "\n",
    "| # | Method | Shorthand | Description | Best For |\n",
    "|---|--------|-----------|-------------|----------|\n",
    "| 1 | `.plot(kind='line')` | `.plot.line()` | Line plot | Time series, continuous trends |\n",
    "| 2 | `.plot(kind='bar')` | `.plot.bar()` | Vertical bar chart | Comparing categories side by side |\n",
    "| 3 | `.plot(kind='barh')` | `.plot.barh()` | Horizontal bar chart | Long category names, rankings |\n",
    "| 4 | `.plot(kind='hist')` | `.plot.hist()` | Histogram | Distribution of a single variable |\n",
    "| 5 | `.plot(kind='box')` | `.plot.box()` | Box plot | Spotting outliers, comparing spread |\n",
    "| 6 | `.plot(kind='kde')` | `.plot.kde()` | KDE curve | Smooth distribution, comparing shapes |\n",
    "| 7 | `.plot(kind='density')` | `.plot.density()` | Alias for kde | Same as KDE |\n",
    "| 8 | `.plot(kind='area')` | `.plot.area()` | Area plot | Cumulative totals, part-to-whole over time |\n",
    "| 9 | `.plot(kind='pie')` | `.plot.pie()` | Pie chart | Proportions of a whole (few categories) |\n",
    "| 10 | `.plot(kind='scatter', x='col1', y='col2')` | `.plot.scatter(x='col1', y='col2')` | Scatter plot | Correlation between two numeric variables |\n",
    "| 11 | `.plot(kind='hexbin', x='col1', y='col2')` | `.plot.hexbin(x='col1', y='col2')` | Hexbin plot | Large datasets, 2D density visualization |\n",
    "\n",
    "**Notes:**\n",
    "- `kde` and `density` are aliases — same plot, counted once for unique types\n",
    "- `scatter` and `hexbin` **require** `x` and `y` arguments\n",
    "- `pie` requires a single column (`y=` or per-column)\n",
    "- `scatter` and `hexbin` are **DataFrame only**\n",
    "\n",
    "<!-- Tips:\n",
    "- Use the returned Axes for annotation, legends, and fine control (ax.set_title, ax.set_xlabel, etc.).\n",
    "- Combine pandas plotting with Matplotlib calls for publication-quality figures.\n",
    "- When plotting many subplots, consider subplots=True and sharex/sharey for consistent axes. -->\n",
    "\n",
    "Note: Jupyter Notebooks enable inline plotting (no pop-up) with `%matplotlib inline`, which is an IPython magic command that tells Jupyter Notebook to render Matplotlib plots directly inside the notebook output cell instead of in a separate window. You don’t need %matplotlib inline in Jupyter environment with IPython >= 7.\n",
    "\n",
    "Later, when you learn Matplotlib, you will see why these methods of plotting are a lot easier to use. Pandas visualization balances ease of use with control over the figure. A lot of the plot calls also accept additional arguments of their parent matplotlib.plt call. \n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv (3.13.13)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
