{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a5cd4f34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.rcParams['font.sans-serif']=['SimHei']\n",
    "plt.rcParams['axes.unicode_minus']=False\n",
    "\n",
    "df = pd.DataFrame({'数学成绩':[60,75,88,92,10,200,85]})\n",
    "df.boxplot(column='数学成绩')\n",
    "plt.title('数学成绩绘制')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "7bd75102",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   数学成绩\n",
      "0    60\n",
      "1    75\n",
      "2    88\n",
      "3    92\n",
      "4    61\n",
      "5    93\n",
      "6    85\n"
     ]
    }
   ],
   "source": [
    "##替换异常值\n",
    "print(df.replace([200,10],[93,61]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "6f1d4a92",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   日期  商品  销量\n",
      "0  周一  苹果  10\n",
      "1  周一  香蕉  20\n",
      "2  周二  苹果  15\n",
      "3  周二  香蕉  25\n",
      "商品  苹果  香蕉\n",
      "日期        \n",
      "周一  10  20\n",
      "周二  15  25\n"
     ]
    }
   ],
   "source": [
    "# 透视表\n",
    "#pandas透视表操作\n",
    "#第一步：先看看原始数据的样子\n",
    "df = pd.DataFrame(\n",
    "{'日期':['周一','周一','周二','周二'],\n",
    "'商品':['苹果','香蕉','苹果','香蕉'],  \n",
    "'销量':[10,20,15,25]})\n",
    "print(df)\n",
    "\n",
    "print(df.pivot(index='日期',columns='商品',values='销量'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d1c2487a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Requirement already satisfied: seaborn in c:\\programdata\\anaconda3\\lib\\site-packages (0.11.2)\n",
      "Requirement already satisfied: pyecharts in c:\\programdata\\anaconda3\\lib\\site-packages (2.1.0)\n",
      "Requirement already satisfied: matplotlib>=2.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (3.5.1)\n",
      "Requirement already satisfied: pandas>=0.23 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (1.4.2)\n",
      "Requirement already satisfied: scipy>=1.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (1.7.3)\n",
      "Requirement already satisfied: numpy>=1.15 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (1.21.5)\n",
      "Requirement already satisfied: simplejson in c:\\programdata\\anaconda3\\lib\\site-packages (from pyecharts) (4.1.1)\n",
      "Requirement already satisfied: prettytable in c:\\programdata\\anaconda3\\lib\\site-packages (from pyecharts) (3.16.0)\n",
      "Requirement already satisfied: jinja2 in c:\\programdata\\anaconda3\\lib\\site-packages (from pyecharts) (2.11.3)\n",
      "Requirement already satisfied: python-dateutil>=2.7 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (2.8.2)\n",
      "Requirement already satisfied: cycler>=0.10 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (0.11.0)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (1.3.2)\n",
      "Requirement already satisfied: packaging>=20.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (21.3)\n",
      "Requirement already satisfied: pillow>=6.2.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (9.0.1)\n",
      "Requirement already satisfied: pyparsing>=2.2.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (3.0.4)\n",
      "Requirement already satisfied: fonttools>=4.22.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib>=2.2->seaborn) (4.25.0)\n",
      "Requirement already satisfied: pytz>=2020.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas>=0.23->seaborn) (2021.3)\n",
      "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.7->matplotlib>=2.2->seaborn) (1.16.0)\n",
      "Requirement already satisfied: MarkupSafe>=0.23 in c:\\programdata\\anaconda3\\lib\\site-packages (from jinja2->pyecharts) (2.0.1)\n",
      "Requirement already satisfied: wcwidth in c:\\programdata\\anaconda3\\lib\\site-packages (from prettytable->pyecharts) (0.2.5)\n"
     ]
    }
   ],
   "source": [
    "#准备绘图环境\n",
    "!pip install seaborn pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "28554a37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD2CAYAAAD24G0VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKt0lEQVR4nO3db4hl913H8c/XpKEhKcmGDJFCp0ugCP5rDUPtalu3/klTgghF2UJRsK2DoPGZuCWVBkUNIn3Q0ARXYy0o/qnQVkmsActitAk6oX1kK0pIkELoNqlJGwQhfn0wN2Qy7s7MnjmzJ7/N6wVhzp1759wvh817z55zz5nq7gAwju9YegAALo5wAwxGuAEGI9wAgxFugMFcedRvcOONN/bx48eP+m0ALiuPPfbYN7p77XzPHXm4jx8/nq2traN+G4DLSlU9eaHnHCoBGIxwAwxGuAEGI9wAgxFugMEIN8BghBtgMMINMBjhBhjMkV85CXBUjp9+YNb1PXH37bOu76jY4wYYjHADDEa4AQYj3ACDEW6AwQg3wGCEG2Awwg0wGOEGGIxwAwxGuAEGI9wAgzlQuKvqpqp6eLV8XVX9bVU9VFWfqaqrjnZEAHbaN9xVdSzJp5Jcs/rW+5N8rLtvTfJUktuObjwAdjvIbV1fSHIqyeeSpLvv3fHcWpKvH8FcAFzAvuHu7ueSpKpe9v2qOpHkWHc/uvtnqmozyWaSrK+vzzIowJG767qZ1/fsvOtbmXRysqpuSHJPkg+c7/nuPtPdG929sba2dpj5ANjlosO9Ohn56SQf7u4n5x8JgL1M2eP+YJJbktxZVWer6tTMMwGwhwP/zsnuPrn6el+S+45qIAD25gIcgMEIN8BghBtgMMINMBjhBhiMcAMMRrgBBiPcAIMRboDBCDfAYIQbYDAHvlcJ8Mpx/PQDs67vibtvn3V9HC173ACDEW6AwQg3wGCEG2Awwg0wGOEGGIxwAwxGuAEGI9wAgxFugMEIN8BghBtgMAcKd1XdVFUP73h8f1U9UlUfObrRADiffcNdVceSfCrJNavH701yRXefSHJzVb3paEcEYKeD7HG/kORUkudWj08m+cvV8kNJ3j7/WABcyL734+7u55Kkql781jVJvrZafibJLbt/pqo2k2wmyfr6+uTh3HMYLpG7rpt5fc/Ouz5eZsrJyW8nuXq1fO351tHdZ7p7o7s31tbWDjMfALtMCfdjeenwyJuTPDHbNADsa8qvLvtskoer6vVJ3pPkbbNOBMCeDrzH3d0nV1+fy/YJykeTvKu7HcwCuIQm/bLg7v5mXvpkCQCXkCsnAQYj3ACDEW6AwQg3wGCEG2Awwg0wGOEGGIxwAwxGuAEGM+nKyWG5dSVwGbDHDTAY4QYYjHADDEa4AQYj3ACDEW6AwQg3wGCEG2Awwg0wGOEGGIxwAwxGuAEGI9wAg7nocFfVsap6sKq2qur3j2IoAC5syh73zyb50+7eSPK6qtqYeSYA9jDlftxPJ/neqro+yRuS/OfuF1TVZpLNJFlfXz/MfKwcP/3AbOt64u7bZ1sXcOlN2eP+xyRvTPIrSb6S5JndL+juM9290d0ba2trhxwRgJ2mhPujSX6xu38jyVeT/Py8IwGwlynhPpbk+6rqiiQ/mKTnHQmAvUwJ9+8kOZPk2SQ3JPmzWScCYE8XfXKyu/85yfccwSwAHIALcAAGI9wAgxFugMEIN8BghBtgMMINMBjhBhiMcAMMRrgBBiPcAIOZcj9uWMyc9yVP3JucMdnjBhiMcAMMRrgBBiPcAIMRboDBCDfAYIQbYDDCDTAY4QYYjHADDEa4AQYj3ACDEW6AwRwq3FV1b1X95FzDALC/yeGuqnck+c7u/psZ5wFgH5Pux11Vr0nyB0kerKqf6u7P7Xp+M8lmkqyvrx96SGZ213Uzr+/ZedcH7GnqHvfPJfnXJL+b5K1VdcfOJ7v7THdvdPfG2traYWcEYIep4f6BJGe6+6kkf5LkXfONBMBepob7P5LcvFreSPLkPOMAsJ+pv3Py/iR/VFXvS/KaJD8930gA7GVSuLv7W0l+ZuZZADgAF+AADEa4AQYj3ACDEW6AwQg3wGCEG2Awwg0wGOEGGIxwAwxGuAEGM/VeJXB5mPPe5O5LziVijxtgMMINMBjhBhiMcAMMRrgBBiPcAIMRboDBCDfAYIQbYDDCDTAY4QYYjHADDGZyuKvqpqr60pzDALC/w+xx/16Sq+caBICDmRTuqvrRJM8neWrecQDYz0WHu6quSvLrSU7v8ZrNqtqqqq1z584dZj4Adpmyx306yb3d/V8XekF3n+nuje7eWFtbmzwcAP/flHD/eJJfqqqzSd5SVX8470gA7OWif3VZd7/zxeWqOtvdH5p3JAD2cqjPcXf3yZnmAOCAXIADMBjhBhiMcAMMRrgBBiPcAIMRboDBCDfAYIQbYDDCDTAY4QYYjHADDEa4AQYj3ACDEW6AwQg3wGCEG2Awwg0wGOEGGIxwAwxGuAEGI9wAgxFugMEIN8BghBtgMFdO+aGqui7Jnye5IsnzSU519//MORgA5zd1j/v9ST7W3bcmeSrJbfONBMBeJu1xd/e9Ox6uJfn6POMAsJ9DHeOuqhNJjnX3o7u+v1lVW1W1de7cuUMNCMDLTQ53Vd2Q5J4kH9j9XHef6e6N7t5YW1s7zHwA7DIp3FV1VZJPJ/lwdz8570gA7GXqHvcHk9yS5M6qOltVp2acCYA9TD05eV+S+2aeBYADcAEOwGCEG2Awwg0wGOEGGIxwAwxGuAEGI9wAgxFugMEIN8BghBtgMMINMBjhBhiMcAMMRrgBBiPcAIMRboDBCDfAYIQbYDDCDTAY4QYYjHADDEa4AQYj3ACDEW6AwQg3wGAmh7uq7q+qR6rqI3MOBMDeJoW7qt6b5IruPpHk5qp607xjAXAh1d0X/0NVH0/y+e5+sKrel+Tq7v7kjuc3k2yuHn5Xkn+bY9g93JjkG0f8HqOwLbbZDttsh20jboc3dvfa+Z64cuIKr0nytdXyM0lu2flkd59Jcmbiui9aVW1198aler9XMttim+2wzXbYdrlth6nHuL+d5OrV8rWHWA8AF2lqcB9L8vbV8puTPDHLNADsa+qhks8mebiqXp/kPUneNttE01yywzIDsC222Q7bbIdtl9V2mHRyMkmq6liSn0jyD9391KxTAXBBk8MNwDKcVAQYzPDhrqobqupbVfXapWdZSlX9cVV9qarOVtVfVNUVS8+0pKr6zar6YlV9pqquXXqeJaz+THy5qraq6heWnmcpVXVXVX1l9f/G2ap6y9IzzWH4cGf7OPtrk7xz6UEWdkd3n0zyzSS3LjzLYqrqh5K8I8kPJ3koL10I9mr0y0neneSjVfX9Sw+zoN/q7pOr/7689DBzuBzCfVuST6y+sn2F2PNLD7Ggdyd5sLdP3vxdkn9feJ5FdffTSR6IHZvLytSPA76SnMj2Z8r/fulBFnZPVV2d7StZH1l6mAXdlGQrSbr78SSPLzvOK8LTSa5feogF3VlVH1ot/1h3v7DoNDMYeo979c+/G5P8VZLjVfWGhUda0h1JvjvJvyQ5vfAsS3ou21fzpqreWlW/uvA8rwQ3ZPsv9FernYdKho92Mni4s/3P4t9eHdv9+Orxq1Z3/2+2j3G/bulZFvRP2T7vkSQ/kuS/F5xlcVV1fbYvkvvCwqMwo8sh3C/+gfxCXt3Hue+pqhej9Ymlh1nQXyd5vKq+mO2TlJ/c5/WXs3uSfD7Jr3X3V5ceZkF37vhUyamlh5mDC3AABjP6HjfAq45wAwxGuAEGI9wAgxFugMEIN8Bg/g8YZuVVSDKOmgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# -------------------- 1. 绘制单组柱形图 --------------------\n",
    "画布 = plt.figure()\n",
    "绘图区域 = 画布.add_subplot()\n",
    "x坐标 = np.arange(5)  # x轴位置（0-4）\n",
    "\n",
    "柱高1 = np.array([10, 8, 7, 11, 13])  # 柱形高度\n",
    "柱宽 = 0.3  # 柱形宽度\n",
    "# 绘制柱形，设置x轴标签\n",
    "绘图区域.bar(x坐标, 柱高1, tick_label=['周一', '周二', '周三', 'D', 'E'], width=柱宽)\n",
    "\n",
    "# -------------------- 2. 绘制多组柱形图（并列） --------------------\n",
    "画布2 = plt.figure()\n",
    "绘图区域2 = 画布2.add_subplot()\n",
    "柱高2 = np.array([9, 6, 5, 10, 12])\n",
    "# 第一组柱形（默认位置）\n",
    "绘图区域2.bar(x坐标, 柱高1, tick_label=['A', 'B', 'C', 'D', 'E'], width=柱宽)\n",
    "# 第二组柱形（向右偏移柱宽，实现并列）\n",
    "绘图区域2.bar(x坐标 + 柱宽, 柱高2, width=柱宽)\n",
    "\n",
    "# -------------------- 3. 给柱形图添加标题（并解决中文乱码） --------------------\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码\n",
    "画布3 = plt.figure()\n",
    "绘图区域3 = 画布3.add_subplot()\n",
    "绘图区域3.bar(x坐标, 柱高1, tick_label=['A', 'B', 'C', 'D', 'E'], width=柱宽)\n",
    "绘图区域3.set_title(\"柱形图示例（单组）\")  # 添加标题\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3c9038c6",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
